![Lv.11 Web socketで双方向通信を実現したい。[play framework2.0] [java]](https://soylatte.jp/wp-content/themes/soy-magazine/assets/images/no-thumbnail.png)
※Web Socketについて詳説してくれているブログ。
みずぴー日記さん。
すごい瑞々しいラクダが特徴的。かなりアーティスティックな方なんじゃないかと、プロフィール写真を見て思った(笑)。アスキーアートがカワイイし効果的。
みずぴー日記さん。
すごい瑞々しいラクダが特徴的。かなりアーティスティックな方なんじゃないかと、プロフィール写真を見て思った(笑)。アスキーアートがカワイイし効果的。
Web Socket※を使う場合、実装上かなり違いがあります。
- まずActionメソッドは、Resultの代わりにWebSocketを返す
- (WebSocketから)ヘッダー情報は取れる
- セッションは取れる
- リクエストBodyにはアクセスできない
- HTTPレスポンスにはアクセスできない
公式ドキュメントのscalaっぽいコードをjavaに直して実行してみる。
[java toolbar=”false”]public static WebSocket index()
{
return new WebSocket()
{
// 接続(ハンドシェイク)したときによばれる
public void onReady(WebSocket.In in,
WebSocket.Out out)
{
// メッセージを受信したら
in.onMessage(new Callback()
{
public void invoke(String event)
{
System.out.println(event);
}
});
{
return new WebSocket
{
// 接続(ハンドシェイク)したときによばれる
public void onReady(WebSocket.In
WebSocket.Out
{
// メッセージを受信したら
in.onMessage(new Callback
{
public void invoke(String event)
{
System.out.println(event);
}
});
// ソケットが閉じたら
in.onClose(new Callback0()
{
public void invoke()
{
System.out.println(“Disconnected”);
}
});
// Helloと出力する
out.write(“Hello!”);
}
};
}[/java]
web socketの確認方法
上記のコードを実装して、runさせた状態で、http://websocket.org/echo.htmlにアクセス。
a:まずブラウザがweb socketをサポートしているかどうかを確認。
b:次にlocationをws://localhost:9000に設定して、connectをクリック。
c:Messageに好きな文言を入れてsendをクリック
d:メッセージが書き出されていることを確認。
アセスメント
- web socketを使う場合に通常と異なるルールを知っている
- web socketの確認方法が分かる
公式ドキュメントは、handling web socketでした。