Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
BoJI4ap
Ситуация:
Есть фирма, у которой свой филиал " у черта на куличках". Надо сделать чат, в котором были бы все сотрудники фирмы, как в основном офисе, так и в филиале.
С 1 сервером чата все понятно, стоит - глядит в инет и все туда рвутся.
Проблемы:
1.Cвязь только через спутниковый интернет, причем у обоих сторон. Если пропадает инет, то часть пользователей уже не может достучаться ( в зависимости от того, где стоит сервер, если в основном - филиал отпадает и наоборот)
2. Канал у филиала маленький и если передавать файлы через тот же FTP: Сначало надо загрузить на сервер, если сервер в основном офисе, дождаться загрузки...Дальше, чтоб 30 человек в филиале могли получить доступ( напрямую нельзя - ограничение сервером) им опять таки надо через тот же маленький канал скачивать с сервера. Та же схема, будет у основного офиса, если сервер будет стоять в филиале.

Вопрос : Можно ли организовать 2 сервера(1 у основного офиса, 2 у филиала), которые работали независимо, но при наличии связи между собой - давали бы возможность переписываться между офисом и филиалом?

P.s.Или как вариант - возможность подключения пользователей к 2-м серверам.
Аватара пользователя
Алексей Пикуров
Репликации данных между серверами нет. То есть нельзя иметь два разных работающих сервера, между которыми будет связь, и в случае "отвала" внешнего канала, пользователи офиса будут общаться между собой. Мы думали сделать технологию объединения серверов между собой, но дальше общих идей дело не двинулось, нужно обстоятельное обсуждение технологии.

Можно обсудить это в этой теме.

Теперь касаемо передачи файлов. В версии 4.13, которая вот-вот выйдет, реализована передача файлов через сервер. Схема такая: если пользователи находятся в одной локальной сети, то передача идёт напрямую, на максимально возможной скорости. Если отправитель в одной сети, а получатель - в другой, то передача файлов будет вестись в режиме "клиент-сервер-клиент", автоматически. На пониженной скорости, однако в автоматическом режиме. Для пользователей - обычных людей, это достаточно удобно.

Давайте обсуждать реализацию технологии репликации данных для объединения серверов. Это нужная вещь и её надо делать. Ждём ваших идей.
Аватара пользователя
Алексей Пикуров
P.S. Касаемо передачи файла всем пользователям - та же ситуация. Нужна репликация данных. Чтобы часть пользователей, которая находится в локальной сети, скачивала этот файл с локального ресурса, а не тянула с удалённого сервера.
MaDdIaBlOs
Алексей, приветствую! За передачу файлов через сервер огромное спасибо!!!!
MaDdIaBlOs
По теме - может сделать возможность подключения клиента чата к двум, к примеру, серверам одновременно, Elisa бы стала проводником в данном случае общего окна чата, а контакты бы разделились на две части - сервер1 и сервер 2.

Упс. не увидел, что автор темы уже это предложил.
Аватара пользователя
Алексей Пикуров
Подключаться одновременно к двум серверам - плохой выход. Во-первых, это сложно сделать технически, непонятно как увязывать, например, в конференциях, пользователей совершенно разных серверов. Кто будет поддерживать эти конференции в актуальном состоянии? Это не выход.

Я обстоятельно читал RFC 1459, там описывается протокол работы IRC серверов, и как работает технология объединения серверов. Как они себя должны вести в случае нетсплита (разрыва связи). Но конкретики там нет, только общие слова.

IRC технология близка MyChat, хотя и есть серьёзные различия. Любые толковые предложения по теме я готов выслушать и обсудить.
BoJI4ap
По поводу передачи файлов:
" Схема такая: если пользователи находятся в одной локальной сети, то передача идёт напрямую, на максимально возможной скорости. Если отправитель в одной сети, а получатель - в другой, то передача файлов будет вестись в режиме "клиент-сервер-клиент", автоматически."
Сразу хотелось бы иметь возможность прописывать "локальные" и "глобальные" сети.
Для примера:
Фирма имеет 3 подсети 192.168.0.*, 192.168.1.*, 192.168.2.*. В принципе это все можно считать локальной сетью предприятия, где можно передавать файлы с большой скоростью. Остальное - глобальная сеть, ну или е ётоже прописывать :)
Спс за ссылку, будем изучать.
Аватара пользователя
Алексей Пикуров
Прописывать подсетки смысла нету. Клиент чата сам пытается соединиться на все сетевые интерфейсы другого клиента, и если ему это удаётся - он начинает передачу. То есть, если у вас в локальной сети настроена маршрутизация между подсетками, то всё будет работать автоматически, ничего не нужно прописывать дополнительно.

И только в случае неудачи соединения (а это означает, что "прямого прохода" нету), передача файлов будет вестись через сервер.
BoJI4ap
Чтоб оба сервера были одноранговыми это проблема...проще когда есть что то вроде домена и обоим северам давался бы заголовок, который прибавляется к каждому контакту и сразу ясно становится где кто, кому посылать как добраться до того или иного пользователя. Это первое что пришло в голову :)

Либо изначально давать серверам идентификатор, который дополняет "адрес" пользователя. В этом случает нужно сообразить как к основному списку пользователей на сервере добавить пользователей( точнее их адреса) на втором. Где-то я видел тему про "послать сообщение из другой программы в MyChat". Мне кажется темы довольно близки
Аватара пользователя
Алексей Пикуров
Что-то вроде заголовков пакетов будет обязательно. Также у серверов должна быть схема Master-Slave. Т.е. кто-то главный, кто-то подчинённый.

Главная проблема заключается в необходимости поддержки конференций (каналов), в которых могут одновременно находиться пользователи двух (трёх, четырёх...) серверов.

Возможно, мы попробуем сделать объединение серверов без поддержки конференций. Но пока это всего лишь идеи.
Аватара пользователя
kas78
Прошло столько лет. Что-нибудь изменилось? Такая же ситуация.
Аватара пользователя
Алексей Пикуров
Нет, не изменилось. Никто не заказал доработку, из чего делаем вывод, что это никому нафиг не надо.