.net socket.io客戶端使用過程
背景:最近做了一個專案,需要對接第三方介面,需要使用.net socket.io作為客戶端來收發指令。雖說socket.io並不難,但是使用過程中還是遇到一些問題,特此記錄一下。
先看socket.io介紹:Socket.io是一個WebSocket庫,包括了客戶端的js和伺服器端的nodejs,它的目標是構建可以在不同瀏覽器和移動裝置上使用的實時應用。它會自動根據瀏覽器從WebSocket、AJAX長輪詢、Iframe流等等各種方式中選擇最佳的方式來實現網路實時應用,非常方便和人性化,而且支援的瀏覽器最低達IE5.5(從中文官方文件那抄過來的...)
websocke之前在h5上用過,第三方也給了一個socket.io的js版本,我看了一下也挺簡單啊,那就直接在.net上試一下吧。
首先需要找相關程式集,一開始在nuget上面下載使用量最高的socketioclientdotnet 0.9.13,可是後邊測試傳送指令異常的慢,得有二三十秒,後來在nuget官網上找了一下歷史版本,換了一個高一些的版本1.0.0.1-beta1,當然通過nuget下載時一些依賴項也下載下來了。
接下來構造socket.io物件。
var options = new IO.Options();//配置項
string username = Guid.NewGuid().ToString();
options.QueryString = "username=user" + username;//引數
Socket socket = IO.Socket("http://127.0.0.1:6330", options);//例項化物件
這裡邊注意,構造socket.io時需要給第三方傳引數username,是通過options中的QueryString傳參的。
socket.io中預設初始化物件時就進行連線,所以不需要額外進行連線操作。
接下來是監聽 連線一些事件。
socket.On(Socket.EVENT, (data) =>
{
});
其中EVENT可以為:EVENT_CONNECT(監聽連線),EVENT_DISCONNECT(斷開連線),EVENT_CONNECT_ERROR(連線錯誤),EVENT_CONNECT_TIMEOUT(連線超時),EVENT_ERROR(錯誤)。
監聽訊息時:
socket.On("retransData", (data) =>
{
});
retransData為監聽訊息佇列。
傳送指令:
JObject sjo = new JObject();
socket.Emit("transData", sjo);
傳送物件時jobject,表示向服務端transData佇列傳送訊息。
相關文章
- 「美餐客戶端 3.0」設計過程客戶端
- 使用 .NET MAUI 開發 ChatGPT 客戶端UIChatGPT客戶端
- socket.io 客戶端與伺服器應用客戶端伺服器
- 走近原始碼:Redis命令執行過程(客戶端)原始碼Redis客戶端
- nginx 處理客戶端請求的完整過程Nginx客戶端
- Fabric1.4原始碼解析:客戶端建立通道過程原始碼客戶端
- Laravel後臺作為客戶端,socket.io作為服務端,App或其他作為另一個客戶端Laravel客戶端服務端APP
- Dubbo-go 原始碼筆記(二)客戶端呼叫過程Go原始碼筆記客戶端
- 在.NET 6 中如何建立和使用 HTTP 客戶端 SDKHTTP客戶端
- .net 獲取客戶端真實ip客戶端
- SharePoint Online 認證Net客戶端物件客戶端物件
- FTP 客戶端使用教程FTP客戶端
- 使用 Java 客戶端透過 HTTPS 連線到 EasysearchJava客戶端HTTP
- 客戶端的js js指令碼的引入 js的解析過程客戶端JS指令碼
- ftp客戶端,ftp客戶端軟體具體怎麼使用?FTP客戶端
- Swoole 協程 MySQL 客戶端與非同步回撥 MySQL 客戶端的對比MySql客戶端非同步
- NEO-GUI 客戶端使用GUI客戶端
- Spring Cloud Config客戶端使用SpringCloud客戶端
- 使用 Webix 建立 Email 客戶端WebAI客戶端
- dbus客戶端使用指南客戶端
- 郵件客戶端的配置使用客戶端
- 命令列客戶端MySQL如何使用命令列客戶端MySql
- Curator(ZoooKeeper客戶端)使用詳解客戶端
- [jaeger] 二、客戶端使用 (Java版本)客戶端Java
- keycloak~scope客戶端模板的使用客戶端
- 中文版vnc客戶端,中文版vnc客戶端下載,中文版vnc客戶端如何使用?VNC客戶端
- Kubernetes客戶端認證(三)—— Kubernetes使用CertificateSigningRequest方式簽發客戶端證書客戶端
- ftp客戶端軟體,ftp客戶端軟體哪個好用,使用方法FTP客戶端
- 使用Flutter開發Github客戶端及學習歷程的小結FlutterGithub客戶端
- Django透過request獲取客戶端IPDjango客戶端
- 如何在跟進過程中打動客戶?
- vnc windows客戶端,vnc windows客戶端下載,具體使用教程。VNCWindows客戶端
- C++20協程例項:攜程化的IOCP服務端/客戶端C++服務端客戶端
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- kubernetes 客戶端KubeClient使用及常用api客戶端clientAPI
- C#之使用CefSharp建立客戶端C#客戶端