using SuperSocket.SocketBase.Config; using SuperSocket.WebSocket; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace SocketServerTest { /// /// MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { 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 MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { 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(); } } /// /// 新的客户端连入时的事件 /// /// private void SocketServer_NewSessionConnected(WebSocketSession session) { SocketUserModel socketUserModel = new SocketUserModel(); socketUserModel.ServerpartCode = session.Path.Split('=')[1]; socketUserModel.UserSession = session; if (SocketSessionList == null) { SocketSessionList = new List(); } SocketSessionList.Add(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(); } } }