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:8080/WebSocketSampleServer")
// .url("http://localhost:8080/websocket")
.url("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/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!!");
// }
//}