Использование нескольких веб-сокетов - PullRequest
0 голосов
/ 25 августа 2018

У меня есть сайт, который посещает несколько тысяч раз в месяц и продолжает расти.Я добавляю в свой веб новые функциональные возможности, которые являются интерактивными.

Теперь я имею дело с вопросом, должен ли я использовать одно соединение веб-сокета для всех функций или я должен создать новое соединение веб-сокета для каждой интерактивной функции моего приложения?

Я думаю о проблемах производительности.Создание веб-сокета означает, что я должен сохранить соединение на сервере.Но множественное соединение для одного пользователя = количество соединения, которое я должен сохранить, намного больше, если я создаю новое соединение для каждой функциональности.

Как лучше всего справиться с этим?

1 Ответ

0 голосов
/ 26 августа 2018

следует ли использовать одно подключение к веб-сокету для всех функций или создать новое подключение к веб-сокету для каждой интерактивной функции моего приложения?

У вас должно быть только одно подключение к веб-сокету, нетпричина использовать несколько веб-сокетов.

Из моего личного опыта :

Лучше всего было бы использовать REST API для обработки действий, поступающих от клиента, и использовать Websocket только для уведомлений,использование REST поможет вам в этом.

В любом случае, если вы хотите, чтобы все ваше приложение взаимодействовало по протоколу веб-сокета, вы можете отправить через сокет что-то вроде

msg = {
  "action": "fly",
   "data": "plane"
}

Затем обработайте его вна стороне вашего сервера, используя оператор переключения регистра:

switch(msg.action){
case 'fly': 
serverCommand.fly(msg.data);
break;
// other statements
}

Или вы можете даже сделать (анализ не требуется):

serverCommand[msg.action](msg.data);

То, что я хочу сказать: вам не нужнооткрыть несколько веб-сокетов для решения проблем с производительностью.

При открытии нескольких веб-сокетов для одного и того же клиента ваш код вряд ли будет обслуживаться, и вы потеряете принцип DRY .

Примитепосмотрите на этот ответ , который не рекомендует открывать несколько сокетов.

И этот ответ , который перечисляет все случаи, когда вы можете открыть несколько веб-сокетов для одного и того же клиента(обратите внимание, это говорит, что регистр использования не является общим )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...