2012-08-03 136 views
2

我是带有jetty的WebSockets的新手,之前我已经使用node.js和socket.io一起创建了WebSocket Server。但由于不同的要求,我将不得不使用java WebSocketServlet/WebSocket,并且目前使用maven,jetty和jetty-websocket插件做得很好。我的问题是,我没有发现什么与Java解决方案的socket.io的socket.on(event,fn)实现相比。我希望对客户端发起的不同事件有相同的可能性,比如“new”,“addthis”,“jointhat”,......以一些数据作为json或POST参数发送给主体。有没有可能或WebSocket实现可以做到与socket.io相同? 做这个“渠道”的东西,我可以在服务器端实现事件处理?jetty WebSocket自定义事件

回答

2

有一个在WebSocket的规格没有自定义事件,socket.io只是遵循自己的协议支持自定义事件 - https://github.com/LearnBoost/socket.io-spec

据我所知,没有Java实现支持自定义事件监听。

但是,在Atmosphere中,您可以使用带有Java Web服务器的socket.io客户端,但我没有经过测试。 https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Socket.IO

如果您想直接控制Jetty的WebSocketServlet,您可能希望在客户端使用其他库,例如jQuery Socket。 - https://github.com/flowersinthesand/jquery-socket/tree/master/samples/jetty-ws

1

Jetty的websocket实现只涉及处理websocket的基础知识。

  • 二进制信息(含分段)
  • 短信(含分段)
  • 平/傍
  • 关闭

还有的是在支持各种新的WebSocket子协议的一些简要的讨论(奇名称),例如WAMP(websocket应用程序消息传递协议)。但那些只会建立在基本websocket层之上。

另一种选择是使用类似CometD的完整通道api,并将其配置为使用websocket,而不是回退到旧的通信格式。