Newer
Older
CosmosServer / src / test / java / WebSocketTest / SampleClient.java
package WebSocketTest;

import java.net.URI;
import javax.websocket.ClientEndpoint;
import javax.websocket.ContainerProvider;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okio.ByteString;

public class SampleClient {
    public static void main(String[] args) {

        WebSocket ws;
        final Request request = new Request.Builder()
//                .url("http://localhost:8081/WebSocketServer") //テスト用
                .url("http://localhost:8080/websocket")
                .build();
        final OkHttpClient client = new OkHttpClient.Builder()
                .build();
        final WebSocketListener listener = new WebSocketListener() {
            @Override
            // 接続
            public void onOpen(WebSocket webSocket, Response response) {
            }

            @Override
            //Serverからのメッセージの受信
            public void onMessage(WebSocket webSocket, final String text) {
            }

            @Override
            public void onMessage(WebSocket webSocket, ByteString bytes) {
                System.out.println("MESSAGE: " + bytes.hex());
            }

            @Override
            public void onClosing(WebSocket webSocket, int code, String reason) {
                webSocket.close(1000, null);
                System.out.println("CLOSE: " + code + " " + reason);
            }

            @Override
            //Serverの切断
            public void onClosed(WebSocket webSocket, int code, String reason) {
            }

            public void onFailure(WebSocket webSocket, Throwable t, Response response) {
                t.printStackTrace();
            }
        };

        ws = client.newWebSocket(request, listener);
        ws.send("Hello");
        client.dispatcher().executorService().shutdown();
    }
}

//@ClientEndpoint
//public class SampleClient {
//
//    public SampleClient() {
//        super();
//    }
//
//    @OnOpen
//    public void onOpen(Session session) {
//        /* セッション確立時の処理 */
//        System.out.println("WebSocketセッション確立");
//    }
//
//    @OnMessage
//    public void onMessage(String message) {
//        /* メッセージ受信時の処理 */
//        System.out.println("WebSocket受信:");
//    }
//
//    @OnError
//    public void onError(Throwable th) {
//        /* エラー発生時の処理 */
//        System.out.println("WebSocketエラー:" + th.getMessage());
//    }
//
//    @OnClose
//    public void onClose(Session session) {
//        /* セッション解放時の処理 */
//        System.out.println("WebSocketセッション確立");
//    }
//
//
//    public static void main(String[] args) throws Exception {
//        // 初期化のためWebSocketコンテナのオブジェクトを取得する
//        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
//        // サーバー・エンドポイントのURI
//        URI uri = URI.create("ws://localhost:8080/websocket");
//        // サーバー・エンドポイントとのセッションを確立する
//        Session session = container.connectToServer(new SampleClient(),uri);
//        // メッセージをサーバへ送る
//        session.getBasicRemote().sendText("Hello World!!");
//    }
//}