关于node和mysql并发处理的小问题

最近在学习node和mysql,用websocket写了个练手聊天程序。

设计的流程是这样的:

  1. 用户登陆时连接websocket,并存到一个数据结构中保存
  2. A用户发送信息给B时,在Node端的socket接收到信息,先存到数据库中,在sql执行成功的回调中通过socket发送给B,完成一次信息发送。

问题来了,如果是有多个用户同时发送信息,都走这个流程,这里node端的socket和mysql操作应该如何处理并发呢?

本人小白一个,只是突然好奇,若是哪里的理解有偏差,还望指出~

阅读 1.7k
1 个回答

socket都有socketId的,在发消息之前,应该做 socketId和用户的绑定表,例如: SocketId=1 <=> UserA,SocketId=2 <=> UserB ,node端收到 收到消息后,要根据socketId找到对应的用户,然后存储消息。然后找到UserB对应的Socket,把A的消息发送给B

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题