СДО "EDUS" СДО "EDUS"
100% СДЕЛАНО В РОССИИ

СИСТЕМА ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Настройка nodejs для работы с веб соккетами

48

Смысл какой работы: у каждого пользователя генерится свой уникальный ключ в базе. Он передаётся во вьюху, где вызываем socket.io/.
Ключ и id пользователя в беке нода передаёт в yii, проверяет, данные ли это пользователя. И если да — то создаёт соккет id. И соответсвенно все взаимодействия от данного пользователя так же в беке передаёт в yii.

Для взаимодействия с вебсоккетами открываем порты 3001 — 3010
sudo ufw allow 3001:3010/tcp
sudo ufw allow 3001:3010/udp

Устанавливаем forever www.npmjs.com/package/forever

npm install -g forever

Для локальной разработки:
Создаём локальный ssl сертификат. Копируем файлы ключей (privkey.pem и fullchain.pem) в папку @app/nodejs.
Если ключи будут как то по другому называться, нужно будет переименовать их.

Для теста в @app/nodejs запускаем скрипт node notification.js чтобы увидеть, есть ошибки или нет.
Записал для примера видео, где показал ошибки, если файла нет — youtu.be/kv_yzax5k9w

Запускаем скрипт @app/nodejs/start-ssl.sh
Он запустит нужные скрипты через forever
Или просто запустить скрипты из файла app/nodejs/start-ssl.sh

Сайт на локалхосте нужно открывать через протокол https, что бы заработали веб соккеты. По http они сейчас не работают. Записал видео как запускается, как увидеть ошибку, если не запущено что то — youtu.be/2hn7fatqks0

Для удалённого сервера, где нам нужно, что бы вебсоккеты работали постоянно:
Создаём симлинки на сертификаты (значения ставим свои)

sudo cp -l /etc/letsencrypt/live/panel.olded.ru/fullchain.pem /var/www/panel.olded.ru/html/nodejs/fullchain.pem
sudo cp -l /etc/letsencrypt/live/panel.olded.ru/privkey.pem /var/www/panel.olded.ru/html/nodejs/privkey.pem

Устанавливаем forever-service
github.com/zapty/forever-service

npm install -g forever-service


Переходим в папку @app/nodejs/ и выполняем команду

sudo forever-service install general-editor-ckeditor  --script general-editor-ckeditor.js
sudo forever-service install general-editor-codemirror  --script general-editor-codemirror.js
sudo forever-service install join-editor  --script join-editor.js
sudo forever-service install lesson  --script lesson.js
sudo forever-service install user-chat  --script user-chat.js
sudo forever-service install notification  --script notification.js
sudo forever-service install general-2d  --script general-2d.js
sudo forever-service install join-2d  --script join-2d.js
sudo forever-service install lesson-course-Info  --script lesson-course-Info.js
sudo forever-service install chat-room  --script chat-room.js

Узнать статус. Например — sudo service lesson-course-Info status

48
No comments yet. Be the first to add a comment!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.