Путь поведения Websocket, необходимый для создания нового соединения при каждом изменении URL-адреса? - PullRequest
0 голосов
/ 13 октября 2018

Я создал сервер Websocket на основе websocket-sharp, с двумя режимами поведения, например:

  • ws: // host / поведение1
  • ws: // хост / поведение2

Из JavaScript, когда я открываю соединение с сервером WebSocket, мне нужно указать URL-адрес поведения, которое будет принимать мое сообщение.Как я могу вызвать поведение2, когда я подключаюсь по URL-адресу поведения1, не создавая новое соединение с веб-сокетом?Возможно ли это?

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

Есть ли какая-либо причина использовать несколько поведений помимо логического деления?Есть ли основания использовать это логическое разделение, даже если оно заставляет создать новое соединение?

1 Ответ

0 голосов
/ 14 октября 2018

Как я могу вызывать поведение2, когда я подключаюсь по URL-адресу поведения1, не создавая новое подключение к веб-сокету?

Если у вас есть два URL-адреса, вам придется создать два разныхподключения к каждому из URL.Вы не можете повторно использовать одно и то же соединение для подключения к различным URL-адресам.

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

Это был бы лучший подход.Вы можете отправить, скажем, данные json в кадрах WebSocket, затем проанализировать эти данные, чтобы определить соответствующее поведение и обработать соответствующим образом.Например, у вас может быть объект JSON в каждом из ваших кадров следующим образом:

{
   "behavior":1,
   "content": "your content to be processed"
}

Есть ли какая-либо причина использовать несколько вариантов поведения помимо логического деления?Есть ли смысл использовать это логическое разделение, даже если оно вынуждает создавать новое соединение?

Вам нужно использовать разные URL-адреса только для конкретных данных соединения, которые различны для каждого клиента.Например, идентификатор или имя.Если одному и тому же клиенту требуется разное поведение в разное время, вам нужно определить собственное соглашение для данных в фреймах WebSocket, как указано выше.

...