工作中项目是物联网项目的,管理平台又是bs架构。
如果用 Socket 的话,Web 端还需要转发,就全部统一采用了 WebSocket 。
DotNet 平台上的 WebSocket 实现有很多种,这里介绍一下用 DotNetty 来实现的方式。
只完成基本使用功能:
管理连接、
服务端接收消息、
服务端主动向指定连接发送消息、
服务端主动端口某连接、
客户端连接断开响应。
本地环境 .net core 2.2
1.创建控制台应用
2.安装NuGet包
DotNetty.Buffers
DotNetty.Codecs
DotNetty.Codecs.Http
DotNetty.Common
DotNetty.Handlers
DotNetty.Transport
DotNetty.Transport.Libuv
3.创建辅助解析的工具类
新建类库 :Examples.Common
同步引用 NuGet 包。并安装以下几个。
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Logging.Console
Examples.Common.csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> <PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> <PackageReference Include="DotNetty.Codecs.Http" Version="0.6.0" /> <PackageReference Include="DotNetty.Common" Version="0.6.0" /> <PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> <PackageReference Include="DotNetty.Transport" Version="0.6.0" /> <PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.2.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" /> </ItemGroup> </Project>