gpt4 book ai didi

Javascript 客户端从 Java Web 套接字读取

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:53:25 24 4
gpt4 key购买 nike

我有一个 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 是一个协议(protocol)吧?它不仅仅是发送明文。

我制作了一个名为 Bowser 的开源 java 网络服务器,它支持 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();

关于Javascript 客户端从 Java Web 套接字读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37975353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com