这是窗口服务代码的一小部分,用于从云端获取生物识别设备的实时考勤数据。该服务从设备中获取数据,并存储在项目文件夹中,形成.log文件,但当在设备上打卡时,我什么都没有得到。请帮助我。我对这个WebSocketServer完全陌生。
private void webSocketServer_NewMessageReceived(WebSocketSession session, string message) 这个方法是用来注册新设备的,但是当我把卡打到设备上时,这个方法没有启动。我没有在这个方法中粘贴所有代码。
using SuperWebSocket;
using SuperSocket.SocketBase;
public class WebSocketLoader
private static WebSocketServer webSocketServer;
public static Dictionary<string, string> _registeredDevices;
private WebSocketLoader(IWorkItem server)
var wsServer = server as WebSocketServer;
webSocketServer = wsServer;
public static WebSocketSession GetSessionByID(string sn)
if (_registeredDevices.ContainsKey(sn))
return webSocketServer.GetAppSessionByID(_registeredDevices[sn]);
return null;
public static void Setup(IWorkItem server)
var webSocketLoader = new WebSocketLoader(server);
webSocketLoader.AddNewMessageReceived();
webSocketLoader.AddNewSessionConnected();
webSocketLoader.AddSessionClosed();
_registeredDevices = new Dictionary<string, string>();
_registeredDevices.Clear();
public void AddNewMessageReceived()
webSocketServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(webSocketServer_NewMessageReceived);
public void AddNewSessionConnected()
webSocketServer.NewSessionConnected += new SessionHandler<WebSocketSession>(webSocketServer_NewSessionConnected);
private void webSocketServer_NewSessionConnected(WebSocketSession session)
Console.WriteLine(webSocketServer.GetAllSessions().Count());
LogHelper.Receive("NewConnected[" + session.RemoteEndPoint + "]");
private void webSocketServer_SessionClosed(WebSocketSession session, CloseReason reason)
LogHelper.Receive("Closed[" + session.RemoteEndPoint + "],Reason:" + reason);
private void webSocketServer_NewMessageReceived(WebSocketSession session, string message)
Console.WriteLine(webSocketServer.GetAllSessions().Count());
LogHelper.Receive("MessageReceived[" + session.RemoteEndPoint + "],Message:" + message);
App.config文件包含以下一行