У меня есть вопрос о веб-сокетах и отправке данных на разные конечные точки в Javascript.
Так можно ли отправлять данные на разные серверные конечные точки в одном соединении с веб-сокетом или мне нужно устанавливать новое соединение для каждой конечной точки?
Допустим:
var ws = new Websocket('ws://localhost:8080');
// send data to /login
ws.send('/login', {logindata...});
// send data to /messages
ws.send('/messages', {data...});
Я думаю, что вы должны определить протокол сообщений, чтобы сервер выполнял правильную конечную точку для каждого типа сообщения.
Например:
{
"msgType": "login",
"msgData": {logindata...}
}
а также
{
"msgType": "messages",
"msgData": {data...}
}
Это могут быть два типа сообщений, которые вы отправляете на сервер. А в бэкэнде есть контроллер для выполнения конечной точки «логин /» или конечной точки «сообщений /».
Не знаю, помогает ли это ... Я так и делаю.
Я не могу сказать наверняка ... но по моему опыту, для того, как работает сервер websocket (по крайней мере, тот, который я реализовал на Python) ... Я так не думаю. Каждое сообщение прибывает в один и тот же метод на сервере, тот, который реализует событие «onMessage» ... Может быть, есть какой-то сервер веб-сокетов, который позволяет вам определять разные «конечные точки», как это делает веб-сервер. Я предполагаю, что веб-сервер получает все сообщения через один и тот же вход, но реализует собственный контроллер, дающий разработчику возможность определять разные «маршруты» или «конечные точки» ...
Ok. Спасибо за ваш комментарий. Ваше решение хорошее, и я буду им пользоваться. Я не могу проголосовать за ваш ответ, но вы получите зеленый крючок :)
так что нет возможности отправить его напрямую на конечную точку? Мне нужен контроллер, который обрабатывает маршрутизацию в бэкэнде?