Это сразу вылет в список недобросовестных исполнителей (или как он там правильно называется) и запрет на участие в тендерах, насколько я знаю. Ничего хорошего.
по-моему наши как раз его и использовали (ребята тогда нашли только одну либу для этого), но автор на него давно забил. либа работает только с версией socket.io 0.9 и младше, а в 1.x они уже сильно поменяли протокол. поэтому и решили нативный брать, без наворотов.
я когда писал comet-сервер перебрал много разных компонентов — у каких-то на тот момент wss был криво реализован, кто-то не мог проксировать запросы по части урла на одном ip на upgrade
у socket.io навернуто сверх нативного websocket очень много. мы его не используем по этой причине — есть сервисы на C#, которым тоже нужно общаться с сервером сообщений, и придется эмулировать «протокол» socket.io, и если они что-то поменяют — все просто может перестать работать. erinarios ws — это нативный websocket.
а так конечно socket.io очень удобный и в нем много чего из коробки есть.
я не совсем корректный пример кода привел в прокси-сервере, не до конца инвестигировал. у нас все-таки https-сервер, завтра попробую еще раз помучать тему прокси на Node.JS.
я видимо с http еще плюнул на эту идею и не стал дальше смотреть.
в socket.io клиент стучится на http://address:port/socket.io
тут я должен бы пояснить, что в javascript инициализация вида
var ws = new Websocket('http://address:port/');
свалится с ошибкой, потому что надо делать
var ws = new Websocket('ws://address:port/);
а последнее не стартанет из-за того, что с секурной странички открытой по https нельзя открывать подключение к несекурному узлу с незащищенным протоколом, т.е.
var ws = new Websocket('wss://address:port/');
на момент апгрейда протокола, безопасное соединение уже установлено
я так понимаю, мы все-таки про прокси? так вот смотрите, если я основную страницу открыл грубо говоря https://127.0.0.1/ и стучусь в wss://127.0.0.1/wss/, то в бэкенде код прокси вида
Интересно, а при партиционировании тостинг только для основной таблицы будет или для каждой партиции отдельно?
Это сразу вылет в список недобросовестных исполнителей (или как он там правильно называется) и запрет на участие в тендерах, насколько я знаю. Ничего хорошего.
Особенно смешно читать по причине того, что nest использует как раз express.
Тормозной
я не пионер и не склонен писать «велосипеды», это была осознанная необходимость, в том числе и по безопасности.
по-моему наши как раз его и использовали (ребята тогда нашли только одну либу для этого), но автор на него давно забил. либа работает только с версией socket.io 0.9 и младше, а в 1.x они уже сильно поменяли протокол. поэтому и решили нативный брать, без наворотов.
я когда писал comet-сервер перебрал много разных компонентов — у каких-то на тот момент wss был криво реализован, кто-то не мог проксировать запросы по части урла на одном ip на upgrade
поэтому был выбран ws
а так конечно socket.io очень удобный и в нем много чего из коробки есть.
это не то, о чем я написал.
для хайлоада не очень здорово куча мелких файлов. на продакшне тогда лучше писать компилятор .js и .css в один файл.
а здесь принято поправить пост и дописать некий Update про третий вариант с кодом?
вот код прокси, если интересно:
app.js
config.json
я видимо с http еще плюнул на эту идею и не стал дальше смотреть.
http-сервер его просто не обрабатывает (не ловит) почему-то.
тут я должен бы пояснить, что в javascript инициализация вида
свалится с ошибкой, потому что надо делать
а последнее не стартанет из-за того, что с секурной странички открытой по https нельзя открывать подключение к несекурному узлу с незащищенным протоколом, т.е.
я так понимаю, мы все-таки про прокси? так вот смотрите, если я основную страницу открыл грубо говоря
https://127.0.0.1/
и стучусь вwss://127.0.0.1/wss/
, то в бэкенде код прокси видав упор не видит WS запроса, потому что это все-таки не HTTP запрос, я так понимаю:
я об этом вобщем и написал в статье…
браузер молча срубит запрос, и все. или я чего не понимаю опять.
да, и по-моему есть некое недопонимание архитектуры. компонентов два.
первый — бэкенд Web UI (443)
второй — WSS Comet-сервер (4433) + HTTP сервер (8090) для внутренних запросов
и никак их на один порт не повесишь