我通过WebSockets写了一个聊天。 服务器端用Java(Tomcat)编写,客户端用JavaScript编写。
一切正常。但是当我尝试从本地网络中的两台机器(它们在路由器下;有一个外部IP)连接到服务器时,只有一个客户端从服务器接收数据。
Connection(socket.onopen())适用于两者。 socket.send(data)也适用于两个客户端;
但接收消息(socket.onmessage())仅适用于第一个连接的客户端。
如何解决此问题?
答案 0 :(得分:0)
问题出在服务器部分。
我想将传入的消息广播到ArrayList中的所有可用连接。
向第一个用户发送消息后,收到的消息被清空。所以,消息已发送,但它只是空字符串。
我的英语不好。所以我会发誓:
之前:
protected void onTextMessage(CharBuffer message) throws IOException {
// List<MessageInbound> connections
for (MessageInbound user : connections )
user.getWsOutbound.writeTextMessage(message);
}
之后:
protected void onTextMessage(CharBuffer message) throws IOException {
String msg = message.toString();
for (MessageInbound user : connections )
user.getWsOutbound.writeTextMessage(CharBuffer.wrap(msg));
}