1

我通过 WebSockets 写了一个聊天。服务器端用 Java (Tomcat) 编写,客户端用 JavaScript 编写。

一切正常。但是当我尝试从本地网络中的两台机器(它们在路由器下;有一个外部 ip)连接到服务器时,只有一个客户端从服务器接收数据。

连接( socket.onopen() )适用于两者。socket.send(data) 也适用于两个客户端;

但是接收消息( socket.onmessage() )仅适用于第一个连接的客户端。

我该如何解决这个问题?

4

1 回答 1

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));
 } 
于 2013-01-28T09:01:14.673 回答