LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# WebSocket服务端/客户端通讯

admin
2025年7月19日 23:41 本文热度 9

一、客户端

引用

using HslCommunication;using HslCommunication.WebSocket;
public class WebSktClientHelper{private string webSocketUrl = "ws://IP地址:端口号";
private WebSocketClient client = null;
/// <summary>/// websocket服务端接收到信息后回调/// </summary>public Action<string> ActMsgReceived = null;

public WebSktClientHelper(string ipAddr, string port) {this.webSocketUrl = $"ws://{ipAddr}:{port}"; }
//打开连接public void TurnOn() { TurnOff(); client = new WebSocketClient(webSocketUrl); client.OnClientApplicationMessageReceive += client_MessageReceived; OperateResult connect = client.ConnectServer(); }
//接收消息private void client_MessageReceived(WebSocketMessage message) {string msg = Encoding.UTF8.GetString(message.Payload);
logMessage("接收到消息:"+ msg);if (!string.IsNullOrEmpty(msg)) ActMsgReceived?.Invoke(msg); }
//发送消息public void SendData(string msg) {try {if (client != null) { logMessage("发送消息:" + msg); client.SendServer(true, msg); } }catch (Exception ex) { logMessage($"发送消息异常,{ex.Message}"); } }
//关闭连接public void TurnOff() {try {if (client != null) { client.ConnectClose(); client.Dispose(); } }catch (Exception) { } }}

二、服务端

public class WebSktSvrHelper{private WebSocketServer server = null;
private int serverPort = 8080;
/// <summary>/// websocket服务端接收到信息后回调/// </summary>public Action<stringstring> ActMsgReceived = null;
public WebSktSvrHelper(string port) { serverPort = int.Parse(port); }
//打开连接public void TurnOn() { TurnOff();
// 创建WebSocket服务器实例 server = new WebSocketServer();
// 启动服务器监听8080端口 server.ServerStart(serverPort);
//// 证书加密//server.UseSSL("certificate.pfx", "password");
// 消息接收事件处理 server.OnClientApplicationMessageReceive += (session, message) => {string receivedMsg = Encoding.UTF8.GetString(message.Payload);
logMessage($"收到客户端消息: {receivedMsg}"); ActMsgReceived?.Invoke(session.Remote.ToString(), receivedMsg);
// 回复客户端 server.SendClientPayload(session, $"服务器已收到: {receivedMsg}"); }; }
//关闭连接public void TurnOff() {try {if (server != null) { server.ServerClose(); server.Dispose(); } }catch (Exception) { } }}

HslCommunication 全面解析

一、基本定义与用途

HslCommunication 是一个功能强大的通信库,最初设计目的是作为三菱PLC的通讯库,但在长期开发过程中功能不断丰富,定位也逐渐扩展。它不仅仅用于工厂设备(如PLC设备、机器人设备、仪器仪表等)的通信,还支持以下多种通信场景:

  • 程序与程序间的数据通信
  • 电脑与电脑间的数据通信
  • C#语言与Java、Python语言之间的通信
  • 程序与网页的通讯
  • 本地电脑与云服务器通讯‌

对于制造企业,HslCommunication可用于快速开发工厂小软件,如设备数据监视系统、工艺数据记录系统、仓储系统或远程PLC数据读写系统。对于系统集成商,它可以配套上位机软件系统,增加项目附加值,实现高质量、低成本的工厂软件交付‌

二、主要功能特点

1. 多协议支持

HslCommunication 支持多种工业通信协议,包括但不限于:

  • Modbus TCP/RTU
  • Siemens S7
  • Omron Fins
  • Schneider Modbus/TCP
  • Ethernet/IP
  • Profinet
  • OPC UA‌

2. 跨平台能力

基于 .NET Core/5/6/7,HslCommunication 能够在 Windows 和 Linux 平台上运行,实现了真正的跨平台能力‌

3. 高性能与稳定性

  • 采用异步编程模型,提供高性能的通信解决方案
  • 经过大量实际项目验证,保证了通信的稳定性和可靠性
  • 完善的异常处理机制,确保应用程序在遇到通信问题时能够稳定运行‌

4. 易于集成与使用

  • 作为 DLL 库,可以轻松集成到各种上位机项目中
  • 提供简洁的API,开发者无需深入了解每种协议的复杂细节
  • 丰富的示例代码和文档,使开发者可以快速上手‌

三、开发环境与平台支持

1. 开发语言

HslCommunication 主要基于 C# 开发,支持 .NET 平台‌

2. 支持平台

  • .NET Framework
  • .NET Core/5/6/7
  • 可在 Windows 和 Linux 平台上运行‌

3. 开发工具

支持多种开发环境,包括:

  • Visual Studio
  • Visual Studio Code
  • IntelliJ IDEA
  • Eclipse
  • Labview
  • Android Studio‌

四、官方资源与开源信息

1. 官方文档

  • 官网API文档:http://api.hslcommunication.cn/
  • 更完整的文档介绍:http://www.hsltechnology.cn/Doc/HslCommunication‌

2. GitHub资源

GitHub上有多个与HslCommunication相关的项目和示例代码,包括:

  • 工业物联网控件库HslControls的使用demo
  • PLC读取示例项目,支持Web端和安卓端数据显示‌

3. NuGet包

可通过NuGet包管理器安装:

powershellCopy Code

Install-Package HslCommunication

NuGet页面:https://www.nuget.org/packages/HslCommunication/‌

五、应用案例与使用场景

1. 典型应用场景

  • 工厂自动化‌:生产线上与PLC通讯,实现设备间数据交互
  • 智能监控‌:采集PLC数据,实现实时监控和故障预警
  • 系统集成‌:在大型项目中与其他系统进行集成‌
  • 设备调试‌:实时监控PLC运行状态,快速发现并解决问题
  • 故障诊断‌:分析PLC数据,找出故障原因,减少停机时间
  • 系统优化‌:分析PLC运行数据,对控制系统进行优化‌

2. 具体实现案例

  • 数据服务器‌:定时更新数据,客户端订阅获取最新数据
  • 发布-订阅机制‌:类似MQTT协议,支持客户端界面实时数据显示
  • 跨程序通信‌:实现异步、同步、一对多、WebAPI等网络框架‌

六、优势与价值

  1. 简化开发‌:封装网络通信细节,减少开发代码量,让开发者专注于业务逻辑
  2. 灵活性‌:支持C#基础数据类型,提供跨平台部署能力
  3. 成本效益‌:开源免费,降低开发者使用成本
  4. 社区支持‌:拥有活跃的开发者社区,提供及时技术支持
  5. 企业采用‌:已有近百家企业和大学在使用,NuGet下载量超过20万‌

HslCommunication作为工业数据通信的全能助手,为工业4.0和智能制造提供了强大的基础通信支持,是工业软件开发的重要工具之一。


阅读原文:原文链接


该文章在 2025/7/21 10:44:39 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved