如何在tcp连接中实现请求响应?

how to implement request response in a tcp connection?

我正在开发一个通过 tcp 套接字通信的信使,它一直保持活动状态,直到发生某些事情,然后客户端将不得不重新连接。

所有请求都通过一个活动连接发送,这提出了我的问题。

如何将服务器的响应映射到客户端的特定请求?

示例:

1 - 客户端发送更新用户名的请求:

{"action":"edit_username", data: "new_username":"blablabla"}

2 - 服务器发送更新通知客户端收到新消息:

{"update":{"type":"new_message", "text":"Hi"}}

3 - 服务器响应用户更新用户名的请求:

{"ok": true, "message":"success"}

现在,有什么方法可以知道第 3 项是对第 1 项的响应?

我最终在客户端为每条消息定义了消息 ID,然后在服务器端根据消息 ID 设置了 "response_to_message_id" 值。这样,在客户端上,我将需要响应的 "message_id"s 添加到一个数组,并在发出每个请求后,我在循环中检查该数组几秒钟,以查明是否有来自服务器的消息具有"response_to_message_id" 等于当前请求的 message_id,如果有,我处理响应。

希望对大家有帮助。