记录一波,C#实现服务端及客户端(HTML及C#演示)
C#WebSocket服务端采用Fleck库,直接NuGet程序包引用。(默认是长连接,不发心跳也不断开连接)
public partial class Main : Form
{
private Dictionary<String, IWebSocketConnection> allSockets;
public Main()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false; //指定不再捕获对错误线程的调用 非线程安全
InitWs();
}
private void InitWs()
{
FleckLog.Level = LogLevel.Debug;
allSockets = new Dictionary<String, IWebSocketConnection>();
var server = new WebSocketServer("ws://0.0.0.0:7777");
server.RestartAfterListenError = true;
server.Start(socket =>
{
socket.OnOpen = () =>
{
//获取客户端网页的url
string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
allSockets.Add(clientUrl, socket);
BoxAddInfo(DateTime.Now.ToString() + "|服务器:与客户端:" + clientUrl + " 建立WebSock连接!\r\n");
};
socket.OnClose = () =>
{
string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
BoxAddInfo(DateTim

3万+

被折叠的 条评论
为什么被折叠?



