Все самые свежие новости о MyChat. Обновления версий, анонсы новых сервисов, важные объявления, акции и скидки для покупателей. Информация о будущих версиях
Аватара пользователя
Андрей Раков
Актуально до версии 5.7 включительно

Обновление от: 10.10.2013

Данное обновление касается серверной части Web'o'Chat.

В обновлении добавлена возможность ручного конфигурирования веб-сервера, в частности можно включить
шифрование трафика (HTTPS), настроить путь к профилю сервера и указать пароль на подключение к серверу.

Далее подробно.

Описание файла конфигурации config.json

Если вы хотите, чтобы веб-сервер Web'o'Chat использовал настройки, которые описаны в
конфигурационном файле - сперва переименуйте "config.json.example" в "config.json"
и скопируйте его в папку node (корневая папка веб-сервера).

Если этот файл (config.json) находится рядом с node.exe - он будет автоматически
обработан. Все указанные в нем параметры будут использоваться в работе веб-сервера.

Если в приведенном списке не хватает чего-то важного - пишите на [email protected] или
оставьте свое пожелание на форуме viewforum.php?f=36

Описание возможных параметров:

* Настройка подключения к серверу
* "ServPass" : "" - пароль к серверу (это не пароль пользователя)

* Настройка шифрования трафика SSL
* "UseSSL" : false - включить шифровани веб трафика HTTPS (true - включить, false - нет)
* "HTTPSPort" : 443 - порт для работы при шифровании трафика
* "PathToKeySSL" : "" - приватный ключ (private.pem)
* "PathToSertSSL" : "" - публичный ключ (public.pem)

* Настройка уровня логирования событий веб-сервера
* "LogLevel" : "L_Normal" - нормальный уровень логирования, доступны 5 уровней,далее указаны по возрастанию:
* низкий : L_Low
* нормальный : L_Normal
* высокий : L_High
* расширенный : L_Extended
* полный : L_Full

* Настройка блока альтернативных портов для работы веб-сервера
* "AlternativePorts" : [80, 8080, 8088] - при старте веб-сервер пробует запуститься на одном из этих пртов,
* если не получилось - завершает рабооту

* Настройка пути к профилю MyChat сервера
* "MyChatProfile" : "" - путь, по которому размещается профиль сервера, необязательный параметр,
* при старте веб-сервера передается MyChat сервером. Данная настройка полезна
* при работе в Linux под WINE, так как MyChat сервер не может правильно определить
* путь к профилю в эмуляторе.

* Настройка подключения к MyChat серверу
* "MyChatServerIP" : "127.0.0.1" - IP адрес сервера чата
* "MyChatServerPort" : 2004 - порт для подключения к серверу чата

* Настройка сжатие файлов GZIP
* "GZIPenable" : false - если включить, то все отправляемые файлы с сервера будут сжиматься, таким образом
* будет существенно экономиться трафик, но возрастет нагрузка на сервер

* Настройка STUN сервера, необходим для прохождения трафика через NAT (данный сервер экспериментальный, может
* не сработать, если между клиентами будет NAT сервер с авторизацией, проще говоря данный сервис работает с
* самыми простыми, но в то же время расспространенными NAT серверами).
* В данный момент используются публичные STUN сервера:
* - stun : stun.l.google.com:19302
* - stun : stun.sipgate.net
* - stun : 217.10.68.152
* Они позволяют соединить пользователей для видеосвязи при работе через интернет, если вы хотите использовать
* встроенный STUN сервер и чтобы люди могли использовать аудио/видео связь - нужно будет сделать порт-маппинг
* извне на порты, которые описаны в списке ниже (STUNport1 и STUNport2)
* "STUNenable" : false - включить встроенный STUN сервер
* "STUNaddr1" : "127.0.0.1"
* "STUNaddr2" : "127.0.0.1"
* "STUNport1" : "2180"
* "STUNport2" : "2181"


Пример содержимого файла конфигуриции:

Код: Выделить всё
 {
    "ServPass"      : "1234567890",

    "UseSSL"        : true,
    "HTTPSPort"     : 443,
    "PathToKeySSL"  : "c:\\ssl_sert\\private.pem",
    "PathToSertSSL" : "c:\\ssl_sert\\piblic.pem"
 }


Важно! Левая часть (ключ) всегда пишется в кавычках, правая часть (значение), если это строковой параметр
тоже пишется в кавычках, числовые и логические (true, false) параметры нужно писать без кавычек. В конце каждой
строки ставится запятая (,), после последней строки запятая НЕ ставится. Глобально настройки обрамляются
фигурными скобками, как показано в примере. Также, при указании пути левый слеш "\" нужно писать 2 раза, вот так - "\\",
например: c:\\ssl_sert\\private.pem, если его заменить на правый "/", можно писать только один, вот так:
c:/ssl_sert/private.pem

Очень важно! Если в оформлении конфигурационного файла будет ошибка - файл не будет обработан.

Сертификаты SSL можно сгенирировать тут: http://www.cert-depot.com/

Скачать обновление.

Как установить обновление: архив webserver.zip нужно разпаковать в папку "node\server\",
которая находится в каталоге с установленным MyChat сервером.

Пример: сервер установлен в "C:\Program Files (x86)\MyChat Server\", значит архив распаковываем
в папку "C:\Program Files (x86)\MyChat Server\node\server\" (node - это веб-сервер MyChat) с заменой существующих файлов.

Обновление 02.10.2013: добавлена настройка адреса и порта сервера чата
Обновление 10.10.2013: добавлен экспериментальный STUN сервер для прохождения NAT-а и его настройка
Обновление 10.10.2013: добавлена настройка сжатие трафика GZIP
Volldemar
* Настройка подключения к серверу
* "ServPass" : "" - пароль к серверу (это не пароль пользователя)
Если не используется этот пароль, то как быть?
Аватара пользователя
Андрей Раков
Если что-то не используется - не добавляйте это в файл настроек.
Volldemar
Цель - запустить вебочат в линуксе.
1 Доустановил в систему (Linux) nodejs.
2 Удалил идущий в комплекте node.exe.
3 Переименовал исполняемый файл линухового ноде в node.exe и положил вместо удалённого виндового.
4 Создал файл конфигурации такого содержания:
Код: Выделить всё
$ cat config.json
{
    "UseSSL"      : true,
    "HTTPSPort"      : 8088,
    "PathToKeySSL"   : "/home/user/.wine/drive_c/Program Files (x86)/MyChatServer/node/server/service/ssl/private.pem",
    "PathToSertSSL"   : "/home/user/.wine/drive_c/Program Files (x86)/MyChatServer/node/server/service/ssl/public.pem",
   
    "LogLevel"      :   "L_Full",

    "AlternativePorts"   : [8080, 8081],

    "MyChatProfile"   : "/home/user/.wine/drive_c/users/Public/Application Data/MyChatServer"
}

5 Сгенерил ссл ключи, по ссылке в посте разработчиков и положил файлы куда необходимо (в конф файле указан полный путь).
6 Уточнение разработчикам, файл config.json нужно ложить радом с исполняемым файлом ноде.ехе.

Готово :)
Хочу выразить огромную благодарность разработчикам за помощь в настройке и запуске ноде :)

Система, на которой всё это работает:
Код: Выделить всё
Linux myhost 3.11.1-2-ARCH #1 SMP PREEMPT Sun Sep 22 19:45:00 CEST 2013 x86_64 GNU/Linux

Код: Выделить всё
wine 1.7.2-1
Аватара пользователя
Андрей Раков
Обновление 02.10.2013

* Настройка подключения к MyChat серверу
* "MyChatServerIP" : "127.0.0.1" - IP адрес сервера чата
* "MyChatServerPort" : "2004" - порт для подключения к серверу чата
Volldemar
Предлагаю в файле:
Код: Выделить всё
config.json.example

прописывать все возможные варианты настроек (т.е. что бы были все левые части (ключ), и их правая часть (значение)), что бы видеть, чем можно "покрутить".
Аватара пользователя
Андрей Раков
Будем добавлять по мене надобности, а "шоб було" - не всегда оправдано :)
Volldemar
Андрей Раков писал(а):Будем добавлять по мене надобности, а "шоб було" - не всегда оправдано :)

Жаль, что нельзя коментить в этом файле...
А нельзя ли преобразовать этот когфиг из json формата, в обычный текстовый файл? Что-бф ноде брал настройки из текстового файла...
Volldemar
Вопрос не в том, что чего-то не хватает...
В возможности редактировать и лишнее, в данный момент, закоментить.
Аватара пользователя
Андрей Раков
Закомментировать нельзя, не очень удобно, согласен, но это не критично, если что-то не нужно, просто, не записывайте это в файл.
Volldemar
все настройки неупомнишь, а так были бы закоменченные заготовки и описания, всё в одном файле. Раскоментируешь нужное, правишь читая коменты...
Аватара пользователя
Андрей Раков
Обновление 10.10.2013

* Настройка сжатие файлов GZIP
* "GZIPenable" : false - если включить, то все отправляемые файлы с сервера будут сжиматься, таким образом
* будет существенно экономиться трафик, но возрастет нагрузка на сервер

* Настройка STUN сервера, необходим для прохождения трафика через NAT (данный сервер экспериментальный, может
* не сработать, если между клиентами будет NAT сервер с авторизацией, проще говоря данный сервис работает с
* самыми простыми, но в то же время расспространенными NAT серверами).
* В данный момент используются публичные STUN сервера:
* - stun : stun.l.google.com:19302
* - stun : stun.sipgate.net
* - stun : 217.10.68.152
* Они позволяют соединить пользователей для видеосвязи при работе через интернет, если вы хотите использовать
* встроенный STUN сервер и чтобы люди могли использовать аудио/видео связь - нужно будет сделать порт-маппинг
* извне на порты, которые описаны в списке ниже (STUNport1 и STUNport2)
* "STUNenable" : false - включить встроенный STUN сервер
* "STUNaddr1" : "127.0.0.1"
* "STUNaddr2" : "127.0.0.1"
* "STUNport1" : "2180"
* "STUNport2" : "2181"
MihaN
Не подскажите, как получить CSR для формирования сертификата ? Надо заказать сертификат ssl для веб-чата хочу оформить его на https://www.nic.ru/ (RU-CENTER) и там просят с генерированный CSR как его получить?)
Аватара пользователя
Андрей Раков
Добрый день.

Воспользуйтесь онлайн сервисом для его генерации, например:
http://www.cert-depot.com/
https://ssl.com.ua/online-CSR-generator или каким-либо другим.

Что такое CSR и как он делается тут - https://www.sslshopper.com/what-is-a-cs ... quest.html
MihaN
получил сертификат ... 2 день уже мучаю MyChat не как не хочет их принимать..
и в логах то что их он не принял нету непонятно ...

включает порт который прописан в настройках MyChat сервер

файл config.json лежит в корневой папке node в C:\Program Files\MyChat Server\node

содержимое

{
"ServPass" : "*******",

"UseSSL" : true,
"HTTPSPort" : 443,
"PathToKeySSL" : "c:\\cwc\\private.pem",
"PathToSertSSL" : "c:\\cwc\\public.pem"
}

и 0 эффекта порты разные пытался .. в логах только


[log 24:12:2014 13:10:24]: webrtc_connection_list killed
[ ! 24:12:2014 13:10:24]: HTTP Server stopped.
[ ! 24:12:2014 13:10:24]: All connections has been dropped!
[ ! 24:12:2014 13:10:24]: WebRTCServer Server stopped.
[ ! 24:12:2014 13:10:25]: WebRTC Server started
[info 24:12:2014 13:10:25]: Start STUN server
IPs: [192.168.1.2, 192.168.1.2]
Ports: [3478, 3479]
[ ! 24:12:2014 13:10:25]: HTTP Server started at port tcp 26800
Последний раз редактировалось MihaN Чт дек 25, 2014 6:37 pm, всего редактировалось 1 раз.
Аватара пользователя
Андрей Раков
Добрый день.

Да в 5.8 переделывал запуск веб-сервера и заблокировал чтение конфигурационного файла. Я сегодня-завтра восстановлю его и дам вам обновление веб-сервера.
MihaN
хорошо, буду ждать :)
Аватара пользователя
Андрей Раков
Замените файл index.js в папке node/server/
Вложения
(3.36 КБ) Скачиваний: 292
MihaN
пытаюсь, не чего не выходит..
подставил в функцию старта StartHTTPServer

console.important("HTTP TEST " + Configuration.UseSSL + ":"+ Configuration.PathToKeySSL +'\n');

выводит false на Configuration.UseSSL .. и путь пустой файл не подхватывается :(
Аватара пользователя
Андрей Раков
Этот лог вы не увидите - лог начинает писаться, когда сервер скажет где находится папка логов, а тут веб-сервер еще не знает где она. Чтобы это увидеть нужно запустить сервер с параметром mcserv.exe /node=gui

В окне веб-сервера будет видно - загружен ли был файл конфигурации.

Можем поступить проще - эту функцию я сейчас добавляю в интерфейс веб-админки, чтобы не мучиться с файлами. Подождите 5.9, она будет скоро, много изменений не будет, просто "подгоняем концы".
Аватара пользователя
Андрей Раков
Если все же ждать не хочется, а руки чешутся (index.js):
Код: Выделить всё
 function StartHTTPServer(){
     __sockets = [];

     var HTTPListener = null;

     if (Configuration.WEBUseSSL){
         var _key  = fs.readFileSync(Configuration.WEBPrivateKeyPath) || fs.readFileSync('./service/ssl/private.pem');
         var _sert = fs.readFileSync(Configuration.WEBPublucKeyPath) || fs.readFileSync('./service/ssl/public.pem');

заменить на
Код: Выделить всё
 function StartHTTPServer(){
     __sockets = [];

     var HTTPListener = null;

     if (true){
         var _key = fs.readFileSync('./service/ssl/private.pem'); // указать полный путь к файлу
         var _sert = fs.readFileSync('./service/ssl/public.pem');  // указать полный путь к файлу
MihaN
спасибо завелось (но в логе у видел в этот раз мой косяк был видимо когда переделывал запятая последняя осталась ), но теперь новая напасть запустил с mcserv.exe /node=gui и когда я пытаюсь зайти на веб сервер то он пишет в лог HTTP socket closed

Разобрался, тут очень плохой баг :)

если зайти по https то все нормально работает корректно
но если зайти по http то веб сервер падает. и не встает
Аватара пользователя
Андрей Раков
Падать от входа по хттп не должен сервак, возможно вы уже что-то свое добавили там в код?
Аватара пользователя
Андрей Раков
Нормальная настройка шифрования добавлена: viewtopic.php?p=17295#p17295
MihaN
код не трогал, заменил на оригинал который вы выложили.

У меня еще вопрос, как отключить веб-чат чтобы по ссылки не отрывалось не чего .., а работал только онлайн суппорт. и больше не чего не было бы доступно
Аватара пользователя
Алексей Пикуров
MihaN писал(а):У меня еще вопрос

Пожалуйста, создайте отдельную тему. Не будем мешать всё вместе в кучу.