using log4net; using SuperSocket.SocketBase; using SuperSocket.WebSocket; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; namespace SupersocketServer { class Program { private static readonly ILog infoLogger = LogManager.GetLogger("Logger"); static void Main(string[] args) { WebSocketServer ws = new WebSocketServer(); ws.NewMessageReceived += Ws_NewMessageReceived;//当有信息传入时 ws.NewSessionConnected += Ws_NewSessionConnected;//当有用户连入时 ws.SessionClosed += Ws_SessionClosed;//当有用户退出时 ws.NewDataReceived += Ws_NewDataReceived;//当有数据传入时 if (ws.Setup(10086))//绑定端口 ws.Start();//启动服务 infoLogger.Info("服务已启动"); Console.ReadKey(); } public static List<WebSocketSession> sessionList = new List<WebSocketSession>(); private static void Ws_NewDataReceived(WebSocketSession session, byte[] value) { string str = Encoding.UTF8.GetString(value); infoLogger.InfoFormat("数据传入 id:{0},value:{1}", session.SessionID, str); } private static void Ws_SessionClosed(WebSocketSession session, CloseReason value) { sessionList.Remove(session); infoLogger.InfoFormat("用户退出:{0},value:{1}", session.SessionID, value); } private static void Ws_NewSessionConnected(WebSocketSession session) { sessionList.Add(session); infoLogger.InfoFormat("用户连入:" + session.SessionID); } private static void Ws_NewMessageReceived(WebSocketSession session, string value) { infoLogger.InfoFormat("接收消息 id:{0},value:{1}", session.SessionID, value); if (value=="Hello") { //模拟心跳包 sessionList.ForEach(o => { o.Send("你好"); }); } } } }
请发表评论