# NetworkSocket **Repository Path**: EWIN66/NetworkSocket ## Basic Information - **Project Name**: NetworkSocket - **Description**: 这是基于SocketAsyncEventArgs封装TCP通讯协议组件,基础层性能好可扩展性很高。其上层Fast、Http、WebSocket模仿了Asp.net WebApi开发风格,支持依赖注入、特性过滤器、全局过滤器和WebApi式的服务方法代码书写,可用于实现快速编写通讯服务项目。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-06-08 - **Last Updated**: 2023-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##### 下载当前版本 程序包管理器控制台:
PM> `Install-Package NetworkSocket` ##### 示例代码 Http协议服务 ``` public class HomeController : HttpController { [HttpPost] public ActionResult Index(User user, bool fAdmin = false) { return Json(new { state = true }); } } // 启动服务 var httpServer = new HttpServer(); httpServer.BindController(); httpServer.StartListen(7777); // 客户端请求 $.post("/home/index",{account:"admin",password:"123456",fAdmin:true}); ``` Fast协议服务 ``` public class MathService : FastApiService { [Api] public int GetSum(int x, int y, int z) { return x + y + z; } } // 启动服务 var server = new FastTcpServer(); server.BindService(); server.StartListen(10086); // 客户端调用 var client = new FastTcpClient(); client.Connect(IPAddress.Loopback, 10086); var sum = client.InvokeApi("GetSum", 1, 2, 3).Result; ``` jsonWebsocket协议服务 ``` public class SystemApiService : JsonWebSocketApiService { [Api] public UserInfo[] SearchUsers(string name) { return new UserInfo[0]; } } // 启动服务 var server = new JsonWebSocketServer(); server.BindService(); server.StartListen(10010); // 客户端调用 var ws = new jsonWebSocket('ws://127.0.0.1:10010/); ws.invokeApi("SearchUsers", ['张三'], function (data) { alert(data.length == 0) }); ``` 自定义协议服务 ``` public class SimpleServer : TcpServerBase { protected sealed override SessionBase OnCreateSession() { return new SessionBase(); } // 收到数据时 protected sealed override void OnReceive(SessionBase session, ReceiveStream buffer) { var bytes = buffer.ReadArray(); session.Send(bytes); } // 连接时 protected sealed override void OnConnect(SessionBase session) { var connectedCount = this.AllSessions.Count(); } // 连接时 protected sealed override void OnDisconnect(SessionBase session) { var connectedCount = this.AllSessions.Count(); } } ``` ##### 功能列表 1、提供Tcp服务器抽象类和客户端抽象类,以及相关的流读写功能类,字节和位操作等功能类。所有基于tcp的标准协议和个人自定义协议的服务都基于此继承来开发,抽象类已实现很多最基础功能。 2、内置flash和silverlight策略服务类,支持继承重写部分功能。 3、内置http服务模块,编写http服务时风格习惯与Asp.Net MVC极其一致,只差不支持视图。 4、内置websocket服务模块,同时封装基于json的jsonWebsocket服务和客户端脚本,从IE6到Chrome的web双工通讯不再是梦,编写jsonWebsocket服务时风格习惯和MVC一致。 5、内置名为fast的自定义个人协议,开发.Net内部使用的系统,可无视通讯知识就能编写tcp双工服务,编写服务风格习惯和MVC一致,客户端不需额外编写。 6、内置也能在EF下使用的Model验证特性,编写各种服务时,Model验证不在是恶心的一坨占了半个函数的if。 7、提供功能强大的Filter,AOP思想可以在http、jsonWebsocket、fast服务编写时大显身手,淋漓尽致,日志、异常和权限验证变得如此简单。 8、提供依赖注入支持,可以替换默认的依赖解析提供着,比如使用Autofac等优秀的依赖注入提供者来减少耦合或生命周期管理,Filter也支持依赖注入。 ##### 欢迎入群 Q群 439800853