30

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

4

2 回答 2

61

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

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

然后您可以轻松地在服务器端解析此 url 以检索数据。

于 2015-02-14T13:58:27.077 回答
19

协议中不支持这一点,但你可以自己捏造一些东西。

  • 当您的服务器完成握手时,存储您要传递给客户端的初始消息。
  • 在您的客户端onopen函数中,发送“读取初始消息”请求。
  • 在您的服务器中,检查该客户端是否未读取其初始消息;回复消息;设置一个标志,表示初始消息已发送。
  • 您的客户端和服务器现在都可以自由发送其他消息。
于 2012-08-30T08:17:49.820 回答