使用socket.io中的每个socket.emit获取多个套接字响应

这里是我的代码示例,我正在使用单个套接字发出同一个用户的多个套接字响应。 有时在每个服务器重新启动时,它也会增加+1个增量。

.... socket.emit('groupmessage', { username: sender_id, server_chat_id:chat_id, user_message:"ownmessage", server_time:server_time, message: new_message, action: "ownmessage", temp: 'new' }); .... 

因为你的socket.on(event, listener)被多次执行(对于同一个事件)。

这是一些可能有用的东西。

关于:通过套接字的响应在附加到事件监听器中接收。

 // Initialize socket socket = IO.socket(SERVER_URL); // Turn on event socket.on(event, listener); // connect the socket socket.connect(); // emit data socket.emit(event, "data"); // disconnect socket mSocket.disconnect(); // Turn Events Off socket.off(event, listener); 

造成问题的原因:当一个事件被添加了同一个监听器的多个实例,那么这个动作被执行的次数是相同的。

原因:由于可能会添加多个监听器

  1. 之前的活动仍然持有对已连接套接字的引用,该Socket仍处于活动状态,具有相同的事件。
  2. 活动callback中Socket的不正确处理取消关注socket.on(event, listener)socket.off(event, listener)之间的同步。

解:

  1. 在事件上打开侦听器并连接 onResume()中的套接字。

  2. 断开套接字并closuresonPause()中的监听器。