工作中项目是物联网项目的,管理平台又是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

DotNetty实现WebSocket的简单使用

 

 

3.创建辅助解析的工具类

 

 新建类库 :Examples.Common

同步引用 NuGet 包。并安装以下几个。

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.FileExtensions

Microsoft.Extensions.Configuration.Json

Microsoft.Extensions.Logging.Console

DotNetty实现WebSocket的简单使用

 

 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>
View Code

相关文章: