Jetty - WebSocket.sendMessage(字符串数据)和void sendMessage(字节帧,字符串数据)之间有什么区别?

时间:2010-09-17 06:20:37

标签: java jetty websocket

我正在玩websockets和Jetty 7.1.6.v20100715。

我有几个问题,主要是因为缺乏关于这些方法的信息/解释。

1st)sendMessage中的字节是什么(字节帧,字符串数据)。

2nd)如果从WebSocket.onConnect()方法调用outbound.sendMessage(string)是否有任何原因?

另外,Jetty实现有什么好的解释,应该如何使用?

http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/websocket/WebSocket.html

由于

1 个答案:

答案 0 :(得分:2)

“大部分缺席”的Jetty文档......我认为早期使用WebSockets的最佳方法是读取specification并注意除此之外只能通过WebSocket连接发送Unicode字符串时间。

回答你的问题:

  1. 该字节是您要发送的“帧类型”。目前,只定义了Unicode字符串的帧类型,因此您只需使用sendMessage(String)方法即可。在我看来,除了提到的方法之外的send*方法不应该是公开的以避免混淆,但对于Jetty API中的许多方法都是如此,它们似乎并不关心。它似乎已准备好发送二进制数据,但AFAIK没有支持除消息之外的任何浏览器,因此在实践中它是无用的。

  2. 据我所知,这样做应该没问题,但Jetty方面缺乏文档会使这成为一项风险很高的业务。这就是为什么我选择从客户端向服务器发送第一条消息以使协议运行的原因,这很正常。

  3. (请注意,我的WebSockt知识大约有6个月的历史,而且这个主题正在快速发展)