C# 即使服务运行正常,也无法使用基于云的windows服务从生物识别设备获取员工的考勤数据
这是窗口服务代码的一小部分,用于从云中的生物识别设备获取实时考勤数据。服务正在工作,但无法从设备获取数据。此服务正在从设备获取数据并存储在项目文件夹中,生成.log文件。但在设备上打卡时,我什么也没有得到。我对app.config文件感到困惑。在我获得的制造商sdk中,有本地主机(127.0.0.1:8080)作为服务器(但他们说这是基于云的sdk)。在这种情况下,服务器列表应该是什么?请帮助我。我对这个WebSocketServer是全新的 private void webSocketServer_NewMessageReceived(WebSocketSession会话,字符串消息)此方法用于注册新设备,但在我将卡穿孔到设备时不会触发此方法。我不会在此方法中粘贴所有代码C# 即使服务运行正常,也无法使用基于云的windows服务从生物识别设备获取员工的考勤数据,c#,sdk,windows-services,cloud,biometrics,C#,Sdk,Windows Services,Cloud,Biometrics,这是窗口服务代码的一小部分,用于从云中的生物识别设备获取实时考勤数据。服务正在工作,但无法从设备获取数据。此服务正在从设备获取数据并存储在项目文件夹中,生成.log文件。但在设备上打卡时,我什么也没有得到。我对app.config文件感到困惑。在我获得的制造商sdk中,有本地主机(127.0.0.1:8080)作为服务器(但他们说这是基于云的sdk)。在这种情况下,服务器列表应该是什么?请帮助我。我对这个WebSocketServer是全新的 private void webSocketServ
使用SuperWebSocket;
使用SuperSocket.SocketBase;
公共类WebSocketLoader
{
私有静态WebSocketServer WebSocketServer;
公共静态字典注册设备;
专用WebSocketLoader(IWorkItem服务器)
{
var wsServer=作为WebSocketServer的服务器;
webSocketServer=wsServer;
}
公共静态WebSocketSession GetSessionByID(字符串序号)
{
如果(_registereddedevices.ContainsKey(序号))
{
返回webSocketServer.GetAppSessionByID(_registeredDevices[sn]);
}
其他的
返回null;
}
公共静态无效设置(IWorkItem服务器)
{
var webSocketLoader=新的webSocketLoader(服务器);
webSocketLoader.AddNewMessageReceived();
webSocketLoader.AddNewSessionConnected();
webSocketLoader.AddSessionClosed();
_registeredDevices=新字典();
_registeredDevices.Clear();
}
public void AddNewMessageReceived()
{
webSocketServer.NewMessageReceived+=新会话处理程序(webSocketServer_NewMessageReceived);
}
public void AddNewSessionConnected()
{
webSocketServer.NewSessionConnected+=新会话处理程序(webSocketServer_NewSessionConnected);
}
私有void webSocketServer_NewSessionConnected(WebSocketSession会话)
{
WriteLine(webSocketServer.GetAllSessions().Count());
接收(“NewConnected[“+session.RemoteEndPoint+”]”);
}
私有void webSocketServer_会话已关闭(WebSocketSession会话,关闭原因)
{
LogHelper.Receive(“关闭[”+session.RemoteEndPoint+”],原因:“+Reason”);
}
私有void webSocketServer_NewMessageReceived(WebSocketSession会话,字符串消息)
{
WriteLine(webSocketServer.GetAllSessions().Count());
LogHelper.Receive(“MessageReceived[“+session.RemoteEndPoint+”],Message:“+Message”);
}
}
App.config文件包含以下行
127.0.0.1适用于本地主机。您需要更新生物识别机器中的有效IP和端口。如果您使用该IP和端口,您的代码可能会工作。请确保机器连接在同一网络中
一般来说,生物识别机器不能与公共IP相关联。因此,无法通过云应用程序与安装在远程位置的机器进行TCP/IP通信
对于来自生物识别机器的云通信,可以使用web api支持的生物识别机器。127.0.0.1适用于本地主机。您需要更新生物识别机器中的有效IP和端口。如果您使用该IP和端口,您的代码可以工作。确保机器连接在同一网络中 一般来说,生物识别机器不能与公共IP相关联。因此,无法通过云应用程序与安装在远程位置的机器进行TCP/IP通信 对于来自生物识别机器的云通信,可以使用web api支持的生物识别机器
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]);
}
else
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);
}
}