HaoYueNet/README.md
2024-05-20 17:47:19 +08:00

97 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HaoYueNet
.Net8/.NetStandard2.0 的,泛用形自建高性能网络库
基于IOCP进一步深度优化而来
网络库本身无依赖,可以用于任何数据通讯 (网络库本身不依赖Protobuff仅上层示例依赖
不用关心网络底层,直接引用或继承,即可便捷使用。
示例demo中包含服务端和客户端双端库可直接用于各类.Net版本程序或Unity程序做TCP通讯底层库。
并包含心跳包等检测、连接管理、Protobuff解析优化后的高性能收发等等。
#使用基础事件回调即可:
OnClientNumberChange//连接数发生变化
OnDisconnected//断开连接
OnNetLog//来自网络库的日志信息
OnReceive//收到网络数据
#Simple目录下有实例客户端和实例服务端
示例中,使用本网络库,您可以继续示例项目写,也可以参照示例代码。
实现了:
事件机制,
客户端基本框架(连接管理,数据管理,消息收发,指定用户发送)
服务端基本框架(连接管理,用户管理,消息收发,指定用户发送,广播等)
简单无OAuth登录
用户列表,
基础的Protobuff设计
基础聊天功能,
整合Protobuff生成。
#最简接入示例(服务端和客户端)
若您的应用相对简单您甚至可以基于Sample增加功能快速达成目标.
Server:
```csharp
TcpSaeaServer Srv = new TcpSaeaServer(1024, 1024);//实例化,最大连接数和最大接收字节数
Srv.OnClientNumberChange += (int num, AsyncUserToken client) => { /* 连接数发生变化*/};
Srv.OnDisconnected += (AsyncUserToken client) => { /* 断开连接 */};
Srv.OnNetLog += (string msg) => { /* 来自网络库的日志信息 */};
Srv.OnReceive += (AsyncUserToken client, int CMDID, byte[] data) => {
/* 收到网络消息 CMDID和数据 */
Srv.SendMessage(client, new byte[1] { 0x00 });//给指定连接发送数据
};
Srv.Init();//初始化
Srv.Start(new IPEndPoint(IPAddress.Any.Address, 6000));//启动
```
Client:
```csharp
NetworkHelperCore network = new NetworkHelperCore();
network.OnClose += ()=> { /* 断开连接 */};
network.OnConnected += (bool IsConnect) => { /* 连接回到,成功或失败 */};
network.OnLogOut += (string msg) => { /* 来自网络库的日志信息 */};
//指定接收服务器数据事件
network.OnReceiveData += (int CMDID, int ERRCODE, byte[] data) => {
/* 收到网络消息 CMDID和数据 */
network.SendToServer(CMDID, new byte[1] { 0x00 });//给服务器发送数据
};
network.Init("127.0.0.1", 6000);//连接服务器
```
#引用姿势
方式1.直接解决方案引用项目
方式2.直接引用dll文件
服务端
HaoYueNet.ServerNetwork.dll
客户端
HaoYueNet.ClientNetwork.dll (.net8 推荐跨平台.net程序使用)
HaoYueNet.ClientNetworkNet.Standard2.dll (.NetStandard 2.0标准的库,用于各种.Net运行时传统.Net4.X版本,用于传统.NetFX程序或Unity游戏或Mono程序)