是否可以在打开websocket连接时发送数据

DPD*_*DPD 24 html5 websocket jetty-8

我正在实现一个Jetty Websocket servlet.当服务器收到新连接时,我想发送一条消息,该消息将由websocket的onopen函数读取.我希望此消息仅在打开期间发送,而不是使用常规connection.SendMessage()函数.有可能吗?如何?

Lew*_*wis 45

不要忘记查询字符串.它在WebSocket url中有效.

new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')
Run Code Online (Sandbox Code Playgroud)

然后,您可以轻松解析服务器端的此URL以检索数据.

  • 是的,但是你如何解析服务器端的 url 呢?url 本身在哪里可用? (2认同)
  • 可能还应该提到@PathParam 的选项...见[这个答案](/sf/ask/1509148231/ -with-jee7-websockets) (2认同)

sim*_*onc 16

协议中没有对此的支持,但您可以自己捏造一些东西.

  • 服务器完成握手后,将要传递的初始消息存储到客户端.
  • 在客户端的onopen功能中,发送"读取初始消息"请求.
  • 在您的服务器中,检查此客户端是否未读取其初始消息; 回复消息; 设置一个标志,表示已发送初始消息.
  • 您的客户端和服务器现在都可以自由发送其他消息.