gpt4 book ai didi

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

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

这是我的代码示例,我通过单个套接字发射获得对同一用户的多个套接字响应。有时它还会在每次服务器重新启动时增加 +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'
});
....

最佳答案

Its because your socket.on(event, listener) is executed multiple times (for same event).

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

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

// 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);

问题原因:当一个事件被添加到同一个监听器的多个实例中时,该操作将执行相同的次数。

原因:添加多个 Listener 可能是由于

  1. 之前的 Activity 仍然持有对已连接套接字的引用,该套接字仍然存在,具有相同的事件。
  2. 在 Activity 回调中对 Socket 的处理不当,导致 socket.on(event, listener)socket.off(event, listener) 之间的同步失效。

解决方案:

  1. 打开事件的ON 监听器并CONNECT onResume() 中的套接字。

  2. DISCONNECT 套接字并在 onPause()OFF 监听器。

关于android - 使用 socket.io 中的每个 socket.emit 获取多个套接字响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798620/

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