2016-06-22 8 views
3

私は、jsクライアントから常に傍受したい座標の束を送信し続けるJava websocketを持っています。ここでは、Javaコードの簡易版である:私はのWebSocketハンドシェイク中に「エラーのようなものを取得し、これを実行した後Java Webソケットから読み取るJavascriptクライアント

var connection; 
    try{ 
     connection = new MozWebSocket('ws://localhost:2500/'); 
    }catch(e){ 
     connection = new WebSocket('ws://localhost:2500/'); 
    } 
connection.onopen = function() {console.log('opened');}; 

connection.onclose = function(evt) { console.log("closed"); }; 
connection.onmessage = function(evt) { console.log("message"); }; 
connection.onerror = function(evt) { console.log(evt); }; 

:私のJSコード用として

public static void main(String args[]) throws IOException { 
    final int portNumber = 2500; 
    System.out.println("Creating server socket on port " + portNumber); 
    ServerSocket serverSocket = new ServerSocket(portNumber); 

    while (true) { 
     Socket socket = serverSocket.accept(); 
     OutputStream os = socket.getOutputStream(); 
     PrintWriter pw = new PrintWriter(os, true); 

     pw.println("test"); 
     pw.println("\r"); 

    } 
    //later on close connection 
    pw.close(); 
    socket.close(); 
} 

がここにそれがどのように見えるかです:ステータスコードにレスポンスコードが見つかりませんでした。私は、JavaScriptのクライアントから克服するのは難しい問題だと理解しています。 こうして私はwebsocketを実装した方法を再編成するべきか、代わりにwebsocketサーバーを作るべきかと思います。しかし、私のソケットがすべての時間に放送される予定のデータを常に読み取ることができるかどうかはわかりません。 ありがとうございます。

答えて

1

あなたはwebsocketがプロトコルの権利であることを認識していますか?平文を送るだけではありません。

WebSocketをサポートするBowserというオープンソースのJava Webサーバーを作成しました。あなたがインスピレーションを得るため、ここでのコードの一部を見てみましょうか、単にライブラリを使用することができます:https://github.com/mirraj2/Bowser/tree/master/src/bowser/websocket

はWebSocketのサーバーを起動するには、それが同じくらい簡単です:

int port = 12345; 
new WebSocketServer(port).onOpen(socket->{ 
    System.out.println("Client connected: " + socket); 
}).start(); 
+0

おかげしかし、どのように私はあなたのクラスを使用します正確に?私はインポートを試み、buildpathに追加しましたが、私は新しいWebSocketServer()を見つけることができません。 – Orochi1992

+0

あなたはどのクラスをビルドパスに追加しましたか? – satnam

関連する問題