LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# WebSocket服務端/客戶端通訊

admin
2025年7月19日 23:41 本文熱度 325

一、客戶端

引用

using HslCommunication;using HslCommunication.WebSocket;
public class WebSktClientHelper{private string webSocketUrl = "ws://IP地址:端口號";
private WebSocketClient client = null;
/// <summary>/// websocket服務端接收到信息后回調(diào)/// </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); }
//發(fā)送消息public void SendData(string msg) {try {if (client != null) { logMessage("發(fā)送消息:" + msg); client.SendServer(true, msg); } }catch (Exception ex) { logMessage($"發(fā)送消息異常,{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服務端接收到信息后回調(diào)/// </summary>public Action<stringstring> ActMsgReceived = null;
public WebSktSvrHelper(string port) { serverPort = int.Parse(port); }
//打開連接public void TurnOn() { TurnOff();
// 創(chuàng)建WebSocket服務器實例 server = new WebSocketServer();
// 啟動服務器監(jiān)聽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的通訊庫,但在長期開發(fā)過程中功能不斷豐富,定位也逐漸擴展。它不僅僅用于工廠設備(如PLC設備、機器人設備、儀器儀表等)的通信,還支持以下多種通信場景:

  • 程序與程序間的數(shù)據(jù)通信
  • 電腦與電腦間的數(shù)據(jù)通信
  • C#語言與Java、Python語言之間的通信
  • 程序與網(wǎng)頁的通訊
  • 本地電腦與云服務器通訊?

對于制造企業(yè),HslCommunication可用于快速開發(fā)工廠小軟件,如設備數(shù)據(jù)監(jiān)視系統(tǒng)、工藝數(shù)據(jù)記錄系統(tǒng)、倉儲系統(tǒng)或遠程PLC數(shù)據(jù)讀寫系統(tǒng)。對于系統(tǒng)集成商,它可以配套上位機軟件系統(tǒng),增加項目附加值,實現(xiàn)高質(zhì)量、低成本的工廠軟件交付?。

二、主要功能特點

1. 多協(xié)議支持

HslCommunication 支持多種工業(yè)通信協(xié)議,包括但不限于:

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

2. 跨平臺能力

基于 .NET Core/5/6/7,HslCommunication 能夠在 Windows 和 Linux 平臺上運行,實現(xiàn)了真正的跨平臺能力?。

3. 高性能與穩(wěn)定性

  • 采用異步編程模型,提供高性能的通信解決方案
  • 經(jīng)過大量實際項目驗證,保證了通信的穩(wěn)定性和可靠性
  • 完善的異常處理機制,確保應用程序在遇到通信問題時能夠穩(wěn)定運行?

4. 易于集成與使用

  • 作為 DLL 庫,可以輕松集成到各種上位機項目中
  • 提供簡潔的API,開發(fā)者無需深入了解每種協(xié)議的復雜細節(jié)
  • 豐富的示例代碼和文檔,使開發(fā)者可以快速上手?

三、開發(fā)環(huán)境與平臺支持

1. 開發(fā)語言

HslCommunication 主要基于 C# 開發(fā),支持 .NET 平臺?。

2. 支持平臺

  • .NET Framework
  • .NET Core/5/6/7
  • 可在 Windows 和 Linux 平臺上運行?

3. 開發(fā)工具

支持多種開發(fā)環(huán)境,包括:

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

四、官方資源與開源信息

1. 官方文檔

  • 官網(wǎng)API文檔:http://api.hslcommunication.cn/
  • 更完整的文檔介紹:http://www.hsltechnology.cn/Doc/HslCommunication?

2. GitHub資源

GitHub上有多個與HslCommunication相關的項目和示例代碼,包括:

  • 工業(yè)物聯(lián)網(wǎng)控件庫HslControls的使用demo
  • PLC讀取示例項目,支持Web端和安卓端數(shù)據(jù)顯示?

3. NuGet包

可通過NuGet包管理器安裝:

powershellCopy Code

Install-Package HslCommunication

NuGet頁面:https://www.nuget.org/packages/HslCommunication/?

五、應用案例與使用場景

1. 典型應用場景

  • ?工廠自動化?:生產(chǎn)線上與PLC通訊,實現(xiàn)設備間數(shù)據(jù)交互
  • ?智能監(jiān)控?:采集PLC數(shù)據(jù),實現(xiàn)實時監(jiān)控和故障預警
  • ?系統(tǒng)集成?:在大型項目中與其他系統(tǒng)進行集成?
  • ?設備調(diào)試?:實時監(jiān)控PLC運行狀態(tài),快速發(fā)現(xiàn)并解決問題
  • ?故障診斷?:分析PLC數(shù)據(jù),找出故障原因,減少停機時間
  • ?系統(tǒng)優(yōu)化?:分析PLC運行數(shù)據(jù),對控制系統(tǒng)進行優(yōu)化?

2. 具體實現(xiàn)案例

  • ?數(shù)據(jù)服務器?:定時更新數(shù)據(jù),客戶端訂閱獲取最新數(shù)據(jù)
  • ?發(fā)布-訂閱機制?:類似MQTT協(xié)議,支持客戶端界面實時數(shù)據(jù)顯示
  • ?跨程序通信?:實現(xiàn)異步、同步、一對多、WebAPI等網(wǎng)絡框架?

六、優(yōu)勢與價值

  1. ?簡化開發(fā)?:封裝網(wǎng)絡通信細節(jié),減少開發(fā)代碼量,讓開發(fā)者專注于業(yè)務邏輯
  2. ?靈活性?:支持C#基礎數(shù)據(jù)類型,提供跨平臺部署能力
  3. ?成本效益?:開源免費,降低開發(fā)者使用成本
  4. ?社區(qū)支持?:擁有活躍的開發(fā)者社區(qū),提供及時技術支持
  5. ?企業(yè)采用?:已有近百家企業(yè)和大學在使用,NuGet下載量超過20萬?

HslCommunication作為工業(yè)數(shù)據(jù)通信的全能助手,為工業(yè)4.0和智能制造提供了強大的基礎通信支持,是工業(yè)軟件開發(fā)的重要工具之一。


閱讀原文:原文鏈接


該文章在 2025/7/21 10:44:39 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
中文乱码字幕国产中文乱设 | 一级a一片免费久久 | 精品久久免费视频观看 | 最新国产AV资源网 | 在线观看免费h视频网站 | 亚洲成a人片在线不卡一二三区 |