using log4net; using SuperSocket.SocketBase; using SuperSocket.WebSocket; using System; using System.Collections.Generic; using System.Linq; using System.Text; using SuperSocket.SocketBase.Config; namespace POSV.WindowsService { public class WebSocketServerEx : WebSocketServer { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); protected override bool Setup(IRootConfig rootConfig, IServerConfig config) { var rootC = new RootConfig() { LogFactory = config.LogFactory }; return base.Setup(rootC , config); } protected override void OnStarted() { base.OnStarted(); logger.Info("服务器已启动"); } protected override void OnNewSessionConnected(WebSocketSessionEx session) { base.OnNewSessionConnected(session); //var name = session.Path; //if (!string.IsNullOrEmpty(name)) //{ // name = name.Substring(1); //} //SessionManager.AddSession(name, session); logger.Info(session.RemoteEndPoint.Address.ToString() + ":连接"); } protected override void OnSessionClosed(WebSocketSessionEx session, CloseReason reason) { base.OnSessionClosed(session, reason); //var name = session.Path; //if (!string.IsNullOrEmpty(name)) //{ // name = name.Substring(1); //} //SessionManager.RemoveSession(name); logger.Info(session.RemoteEndPoint.Address.ToString() + ":断开连接"); } protected override void OnStopped() { base.OnStopped(); logger.Info("服务器已停止"); } } }