using SuperSocket.SocketBase.Config; using SuperSocket.WebSocket; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; namespace SocketService { public partial class SocketService : ServiceBase { WebSocketServer SocketServer { get; set; } public class SocketUserModel { public string ServerpartCode { get; set; } public string ShopCode { get; set; } public string MachineCode { get; set; } public WebSocketSession UserSession { get; set; } } /// /// 在线用户列表 /// List SocketSessionList { get; set; } public SocketService() { InitializeComponent(); } /// /// 启动服务事件 /// /// protected override void OnStart(string[] args) { SocketServer = new WebSocketServer(); SocketServer.NewSessionConnected += SocketServer_NewSessionConnected; //当有新的客户端连入时的事件 SocketServer.NewMessageReceived += SocketServer_NewMessageReceived; //当有新的消息传入时的事件 SocketServer.NewDataReceived += SocketServer_NewDataReceived; //当有新的数据传入时的事件 SocketServer.SessionClosed += SocketServer_SessionClosed; //当有客户端断开连接时的事件 ServerConfig serverConfig = new ServerConfig { Name = "ESServer", ServerTypeName = "SServer", ClearIdleSession = true, //60秒执行一次清理90秒没数据传送的连接 ClearIdleSessionInterval = 60, IdleSessionTimeOut = 90,//会话连接超时时间(秒) //MaxRequestLength = 2048, //最大包长度 Ip = System.Net.IPAddress.Any.ToString(), Port = 7119, MaxConnectionNumber = 100000 }; if (SocketServer.Setup(serverConfig)) { SocketServer.Start(); } } /// /// 关闭服务事件 /// protected override void OnStop() { if (SocketServer.State == SuperSocket.SocketBase.ServerState.Running) { SocketServer.Stop(); } SocketServer.Dispose(); } /// /// 新的客户端连入时的事件 /// /// private void SocketServer_NewSessionConnected(WebSocketSession session) { SocketUserModel socketUserModel = new SocketUserModel(); //session.Items. throw new NotImplementedException(); } /// /// 客户端断开连接时的事件 /// /// /// private void SocketServer_SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason value) { throw new NotImplementedException(); } /// /// 新的数据传入时的事件 /// /// /// private void SocketServer_NewDataReceived(WebSocketSession session, byte[] value) { throw new NotImplementedException(); } /// /// 新的消息传入时的事件 /// /// /// private void SocketServer_NewMessageReceived(WebSocketSession session, string value) { throw new NotImplementedException(); } } }