最近小弟在用websocket做WEB聊天应用,目前为止,支持离线消息等,感觉还行,不过很蛋疼的是文件传输和语音视频等就麻烦了啊!!!好了,言规正传,下面介绍下在Jetty官网上看到的新闻消息,额,,,小弟英文不好,就不翻译了啊,只大概介绍下,如有错误,还启望指正,此举意在有兴趣的一起探讨下,勿喷!
首先,9.x与8.x在websocket的构建上都比较容易,如果只是简单的应用,那么在jetty8.x上只需要一个websocketservlet和一个实现了onTextMessage(或另外一个接口)接口的类就可以了。不过到了9.x有了一点改动,与以前相比,我认为更合理,同样它需要一个websocketservlet,但实现的接口与之前不一样了,是实现了WebSocketListener这样一个接口,废话少话,下面给官网的demo吧:
03 | import org.eclipse.jetty.websocket.server.WebSocketServerFactory; |
04 | import org.eclipse.jetty.websocket.server.WebSocketServlet; |
06 | public class MyEchoServlet extends WebSocketServlet |
09 | public void configure(WebSocketServerFactory factory) |
11 | // register a socket class as default |
12 | factory.register(MyEchoSocket. class ); |
下面再是websocket的接口实现类:
03 | import java.io.IOException; |
05 | import org.eclipse.jetty.util.Callback; |
06 | import org.eclipse.jetty.util.FutureCallback; |
07 | import org.eclipse.jetty.websocket.core.api.WebSocketConnection; |
08 | import org.eclipse.jetty.websocket.core.api.WebSocketException; |
09 | import org.eclipse.jetty.websocket.core.api.WebSocketListener; |
11 | public class MyEchoSocket implements WebSocketListener |
13 | private WebSocketConnection outbound; |
16 | public void onWebSocketBinary( byte [] payload, int offset, |
19 | /* only interested in text messages */ |
23 | public void onWebSocketClose( int statusCode, String reason) |
29 | public void onWebSocketConnect(WebSocketConnection connection) |
31 | this .outbound = connection; |
35 | public void onWebSocketException(WebSocketException error) |
37 | error.printStackTrace(); |
41 | public void onWebSocketText(String message) |
50 | String context = null ; |
51 | Callback callback = new FutureCallback<>(); |
52 | outbound.write(context,callback,message); |
这样的话当客户端发送普通文本消息就会走onSocketText方法,当发送二进制文件时就会走onWebSocketBinary,感觉这样开发起来更方便,更好,比如,客户端发送了语音消息就自动走onWebSocketBinary方法,发送文本消息就自动 走onSocketText方法,对我们开发人员来说更容易处理。当然除了实现接口,还有其它的方法,继续一个WebSocketAdapter类,有点像GUI编程里面的监听器和监听器实现类,呵呵。。。这种继续方式就不多做介绍了,有兴趣的就一起看下吧。呵呵。。。这是介绍地址:http://webtide.intalio.com/2012/10/jetty-9-updated-websocket-api/
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。