C#和WebSocket4Net实现服务端与客户端通讯

C#和WebSocket4Net实现服务端与客户端通讯

编码文章call10242025-07-06 9:45:153A+A-


(一)服务端实现


1. 创建服务端实例:初始化 SuperWebSocket 服务端对象。


2. 启动监听:指定监听的端口,开始等待客户端连接。


3. 处理连接事件:当有客户端连接时,进行相应的处理。


4. 处理消息接收事件:对消息进行解析和处理。


5. 发送消息:根据需求,向客户端发送消息。


(二)客户端实现


1. 创建客户端实例:指定要连接的服务器地址。


2. 建立连接:调用连接方法,与服务器建立 WebSocket连接。


3. 发送消息:当向服务器发送消息时,调用发送方法。


4. 处理消息接收事件:在事件处理程序对消息进行处理。


(三)示例


服务端代码


using SuperWebSocket;


class WebSocketServer


{


private WebSocketServer server;


public WebSocketServer()


{


server = new WebSocketServer();


server.NewSessionConnected += Server_NewSessionConnected;


server.SessionClosed += Server_SessionClosed;


server.NewMessageReceived += Server_NewMessageReceived;


}


public void Start(int port)


{


if (server.Setup(port))


{


server.Start();


Console.WriteLine(#34;Server started on port {port}");


}


}


private void Server_NewSessionConnected(WebSocketSession session)


{


Console.WriteLine(#34;New client connected: {session.SessionID}");


}


private void Server_NewMessageReceived(WebSocketSession session, string value)


{


Console.WriteLine(#34;Received message from {session.SessionID}: {value}");


}


}


客户端代码


using WebSocket4Net;


class WebSocketClient


{


private WebSocket client;


public WebSocketClient(string url)


{


client = new WebSocket(url);


client.Opened += Client_Opened;


client.Closed += Client_Closed;


client.MessageReceived += Client_MessageReceived;


}


public void Connect()


{


client.Open();


}


public void SendMessage(string message)


{


if (client.State == WebSocketState.Open)


{


client.Send(message);


}


}


private void Client_Opened(object sender, EventArgs e)


{


Console.WriteLine("Connected to server");


}


private void Client_MessageReceived(object sender, MessageReceivedEventArgs e)


{


Console.WriteLine(#34;Received message from server: {e.Message}");


}


}

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4