前言
在用WS做一些互动的逻辑时,我们一般会在下面的方法中做业务逻辑
1  | private void NewMessageReceived(WebSocketSession session, string message)  | 
但是消息的接收是多线程的,那么会出现这么一个情况,如果消息的处理必须有先后的话,处理的时候就会出问题,比如一个是上线信息,一个是下线信息,一个是给上线用户发的信息,
如果我们想要的执行的顺序是处理上线信息=>给上线用户发消息=>处理用户下线信息,
但是可能执行时处理上线信息=>处理用户下线信息=>给上线用户发消息,这样就没法给该用户发消息了,所以我们要把用户上下线和其他消息放在一个队列中,让用户上下线信息串行执行,而其他信息并行执行
先定义实体类
1  | using SuperWebSocket;  | 
定义队列
1  | //接收的消息队列  | 
消息处理
1  | private void NewMessageReceived(WebSocketSession session, string message)  | 
这样就可以保证处理消息的先后了。