基于.Net 框架实现WebSocket 简单通信——服务端

新建项目

创建一个.Net 框架的控制台程序。

添加包 

项目 → 管理 NuGet 程序包打开包管理窗口,添加SuperWebSocket 程序包。

实现

项目 → 添加类打开添加新项窗口,添加一个C#类。

启动监听 

WebSocketServer socket = new WebSocketServer();

Console.WriteLine("IP:" + ip);
Console.WriteLine("端口:" + port);

if (!socket.Setup(ip, port))
{
    Console.WriteLine("监听地址设置失败!");
    return;
}

if (!socket.Start())
{
    Console.WriteLine("监听启动失败!");
    return;
}

Console.WriteLine("启动服务成功,等待连接……");

 添加连接监听

socket.NewSessionConnected += NewSessionConnected;

void NewSessionConnected(WebSocketSession session)
{
    Console.WriteLine("{0:HH:MM:ss} 与 {1} 创建连接!", DateTime.Now, session.RemoteEndPoint);
}

 添加信息接收监听

socket.NewMessageReceived += NewMessageReceived;

void NewMessageReceived(WebSocketSession session, string message)
{
    Console.WriteLine("{0:HH:MM:ss} 接收到 {1} 发送的信息:{2}", DateTime.Now, session.RemoteEndPoint, message);
}

 添加二进制流接收监听

socket.NewDataReceived += NewDataReceived;

void NewDataReceived(WebSocketSession session, byte[] data)
{
    Console.WriteLine("{0:HH:MM:ss} 接收到来自:{1} 的二进制流,长度:{2}", DateTime.Now, session.RemoteEndPoint, data.Length);
}

 广播(string )

foreach (var session in socket.GetAllSessions())
{
    session.Send(msg);
}

 广播(byte[] )

foreach (var session in socket.GetAllSessions())
{
    session.Send(data, 0, data.Length);
}

添加断连监听

socket.SessionClosed += SessionClosed;

void SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason reason)
{
    Console.WriteLine("{0:HH:MM:ss} 与 {1} 断连,原因:{2}", DateTime.Now, session.RemoteEndPoint, reason);
}

关闭监听

socket.Stop();

效果

拓展 

IP 端口配置及读取

App.config 添加appSettings 

视图 → 解决方案资源管理器打开资源管理器窗口,在资源管理器窗口找到App.config 并打开,添加appSettings。

<appSettings>
    <add key="SvrIP" value="127.0.0.1" />
    <add key="SvrPort" value="1213" />
</appSettings>

读取

ip = ConfigurationManager.AppSettings["SvrIP"];
int.TryParse(ConfigurationManager.AppSettings["SvrPort"], out port);

客户端 

Unity 实现WebSocket 简单通信——客户端-CSDN博客【代码】Unity 实现WebSocket 简单通信——客户端https://blog.csdn.net/2301_79311694/article/details/139534415

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 06:40:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 06:40:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 06:40:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 06:40:05       18 阅读

热门阅读

  1. Unity3D MMORPG 主城角色动画控制与消息触发详解

    2024-06-12 06:40:05       7 阅读
  2. wireshark 用LUA二次开发

    2024-06-12 06:40:05       5 阅读
  3. web前端开发应用:深度解析与实用指南

    2024-06-12 06:40:05       10 阅读
  4. 供需采购报价小程序系统

    2024-06-12 06:40:05       4 阅读
  5. uniapp如何实现跳转

    2024-06-12 06:40:05       6 阅读
  6. 解决Apache Doris占用CPU和内存过高

    2024-06-12 06:40:05       7 阅读
  7. 微信小程序写一个录音机

    2024-06-12 06:40:05       3 阅读
  8. Apache Doris 基础 -- 数据表设计(分层存储)

    2024-06-12 06:40:05       6 阅读
  9. mysql安装_改密码_找回密码

    2024-06-12 06:40:05       3 阅读
  10. AWS概述

    2024-06-12 06:40:05       8 阅读
  11. C++中的单例模式

    2024-06-12 06:40:05       5 阅读
  12. WDF驱动开发-I/O请求的处理(二)

    2024-06-12 06:40:05       7 阅读