我有一个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); };
运行后,我收到了类似于“Error during WebSocket handshake: No response code found in status line”的错误消息,我理解这是JavaScript客户端难以克服的问题。 因此,我想知道是否应该重新安排实现WebSocket的方式或者应该创建一个WebSocket服务器?但我不确定它是否仍然允许我始终读取套接字将广播的数据。 提前感谢您的帮助。