簡體   English   中英

從java web socket讀取的Javascript客戶端

[英]Javascript client reading from java web socket

我有一個Java websocket,它不斷發送一堆我想要從js客戶端持續攔截的坐標。 這是java代碼的簡化版本:

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();
}

至於我的js代碼,它的外觀如下:

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); };

運行之后,我得到類似“ WebSocket握手期間的錯誤:在狀態行中找不到響應代碼 ”,我明白這是一個從javascript客戶端克服的難題。 因此,我想知道是否應該重新安排我實現websocket的方式,還是應該改為使用websocket服務器? 但我不確定它是否仍然允許我不斷讀取我的套接字將在任何時候播放的數據。 先感謝您。

你意識到websockets是一個協議嗎? 它不只是發送明文。

我創建了一個名為Bowser的開源java webserver,它支持websockets。 您可以在這里查看一些代碼以獲取靈感,或者只使用庫: 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM