websocketで遊んでみた powered by Jetty 8
ソースコードは https://github.com/hogelog/chatty に。
Windowsで動くWebSocketサーバをサクッと書くにはJavaでJetty使うのが一番楽だなあということがよくわかりました。rubyのアレとかpythonのソレとかこれとか、だいたいlibeventやらなんらかのネイティブライブラリを使っているので面倒。JettyでWebSocket使うには、pom.xmlを適当に仕上げて*1、ソース書いて、あとは
$ mvn jetty:run
と叩くだけで依存するライブラリ落としてきて(ネイティブライブラリのビルドとかが始まることなしに)普通にサーバが動き始める。良い。
pom.xmlにjetty-websocketを記述。
<dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-websocket</artifactId> <version>8.1.0.RC1</version> </dependency>
@WebServlet("/chatty") public class ChattyServlet extends WebSocketServlet { public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) { return new ChattyWebSocket(); } }
public class ChattyWebSocket implements WebSocket.OnTextMessage { public void onOpen(Connection connection); public void onClose(int closeCode, String message); public void onMessage(String data); }
こんな感じで書く。WebSocket.OnTextMessage以外にもOnBinaryMessageとかもあるし普通に使いやすそう。
http://download.eclipse.org/jetty/stable-8/apidocs/org/eclipse/jetty/websocket/WebSocket.html
*1:それが面倒なんだろうけど