最近在学习node和mysql,用websocket写了个练手聊天程序。
设计的流程是这样的:
- 用户登陆时连接websocket,并存到一个数据结构中保存
- A用户发送信息给B时,在Node端的socket接收到信息,先存到数据库中,在sql执行成功的回调中通过socket发送给B,完成一次信息发送。
问题来了,如果是有多个用户同时发送信息,都走这个流程,这里node端的socket和mysql操作应该如何处理并发呢?
本人小白一个,只是突然好奇,若是哪里的理解有偏差,还望指出~
最近在学习node和mysql,用websocket写了个练手聊天程序。
设计的流程是这样的:
问题来了,如果是有多个用户同时发送信息,都走这个流程,这里node端的socket和mysql操作应该如何处理并发呢?
本人小白一个,只是突然好奇,若是哪里的理解有偏差,还望指出~
5 回答4.8k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答1.7k 阅读✓ 已解决
socket都有socketId的,在发消息之前,应该做 socketId和用户的绑定表,例如: SocketId=1 <=> UserA,SocketId=2 <=> UserB ,node端收到 收到消息后,要根据socketId找到对应的用户,然后存储消息。然后找到UserB对应的Socket,把A的消息发送给B