websocket of weblogic
TRANSCRIPT
WebLogicのWebSocket
Takahiro YAMADA@yamadamn
2013/8/19
WebLogic Server (WLS) 12.1.2
• Java EE 6対応
•リリース: 2013/7/11
•商用APサーバーとして、WebSocketに早い段階で対応
ある夜明けのこと
エヴァンジェリストに絡んでる人を発見...
※プライバシー保護のため一部加工しています
何が起こったのか?
•その前日のこと
マニュアルを見てみると
• http://docs.oracle.com/middleware/1212/wls/WLPRG/websockets_sse.htm
確かに独自実装
WLS 12.1.2のリリースは、2013/7/11なのでタイミング的に間に合わなかったっぽい
JSR 356
エヴァンジェリストからの援護射撃
ヒゲメン登場
実はこの方、昔のBEAシステムズでWLSサポート担当
実装イメージimport weblogic.websocket.WebSocketAdapter;import weblogic.websocket.WebSocketConnection;import weblogic.websocket.WebSocketContext;import weblogic.websocket.annotation.WebSocket; @WebSocket(pathPatterns="/hello", timeout=300)public class MyListener extends WebSocketAdapter {
@Override public void onMessage(WebSocketConnection connection, String payload) { // 受信時の処理 } public void broadcast(String message) { for (WebSocketConnection con : context.getWebSocketConnections()) { if (con.isOpen()) { con.send(message); // 送信 } } }}
weglogic.websocketパッケージを利用
WebSocketアノテーション+
(WebSocketListenerの実装or
WebSocketAdapterの継承)
(参考) JSR 356の実装イメージimport java.util.*;import javax.websocket.*;import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/hello")public class MyEndpoint { private static Set<Session> sessions = Collections.synchronizedSet(new HashSet<Session>());
@OnMessage public void onMessage(String message) { // 受信時の処理 }
public void broadcast(String message) { for (Session session : sessions) { if session.isOpen() { session.getAsyncRemote().sendText(message); // 送信 } } } @OnOpen public void onOpen(Session session){ sessions.add(session); } @OnClose public void onClose(Session session){ sessions.remove(session); }}
まとめ
•手早く手厚くWebSocketのサポートを受けたい方
• WebLogic Server 12.1.2• サポートは弊社の利用をご検討ください m(_ _)m
•標準準拠でなければ使いたくない方
• GlassFish 4.0• WebLogic Server 12.1.3 (おそらくJSR 356に準拠)
•謝辞
• てらだよしお愛してる
• ヒゲメンまじイケメン
• ネタに使った@btn*****さん、ごめんなさい
ご清聴いただき、ありがとうございました