WebSocket客户端来自一个外部IP地址

时间:2013-01-21 13:06:23

标签: javascript tomcat networking websocket local

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

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

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

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

如何解决此问题?

1 个答案:

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