Я использую сервлет Jetty Websocket. Когда сервер получает новое соединение, я хочу отправить сообщение, которое будет прочитано функцией onsop для websocket. Я хочу, чтобы это сообщение отправлялось только во время открытия и не использовало регулярное соединение .SendMessage(). Можно ли это сделать? и как?
Можно ли отправлять данные при открытии соединения в сети?
Ответ 1
В протоколе нет поддержки, но вы можете сами что-то придумать.
- Когда ваш сервер завершает рукопожатие, сохраните начальное сообщение, которое вы хотите доставить клиенту.
- В вашей клиентской функции
onopen
отправьте запрос "прочитайте начальное сообщение". - На вашем сервере убедитесь, что этот клиент не прочитал его начальное сообщение; ответить сообщением; установите флаг, указав, что отправлено начальное сообщение.
- Теперь ваш клиент и сервер могут отправлять другие сообщения.
Ответ 2
Не забывайте строку запроса. Он действителен в URL-адресе WebSocket.
new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')
Затем вы можете легко разобрать этот URL-адрес на стороне сервера для извлечения данных.