uniapp原生插件 TCP Socket 使用文檔
試了插件市場幾個TCP Socket插件都不能實現監聽服務器主動斷開,于是閑來無事就開發了一款,本插件是一個基于 Netty 實現的 TCP 通信模塊,用于在 UniApp 插件中提供 TCP 連接、數據發送和連接管理功能。以下是模塊的詳細使用說明。
功能概述
- 打開 TCP 連接:通過指定的主機地址和端口號建立 TCP 連接。
- 發送數據:向已建立的 TCP 連接發送數據。
- 關閉 TCP 連接:斷開當前的 TCP 連接并釋放資源。
- 檢查連接狀態:查詢當前 TCP 連接的狀態。
- 設置連接狀態:手動設置連接狀態(內部使用)。
方法說明
1. 打開 TCP 連接
openTcp(params, callback)
-
參數
params
(Object): 包含以下鍵值對:host
(String): 目標主機地址,例如"127.0.0.1"
。port
(Integer/Double): 目標端口號,例如8080
。callback
(Function): 回調函數,返回操作結果。
-
回調返回值
code
(Number): 狀態碼,1
表示成功,0
表示失敗。msg
(String): 操作結果描述信息。type
(String): 操作類型,固定為"CONNECTION_OPENED"
。
-
示例
tcpSocket.openTcp({host: "127.0.0.1",port: 8080 }, (res) => {console.log(res); });
2. 發送數據
sendData(params, callback)
-
參數
params
(Object): 包含以下鍵值對:data
(String): 要發送的數據內容。callback
(Function): 回調函數,返回操作結果。
-
回調返回值
code
(Number): 狀態碼,1
表示成功,0
表示失敗。msg
(String): 操作結果描述信息。data
(String): 發送的數據內容(僅在成功時返回)。type
(String): 操作類型,固定為"DATA_SENT"
。
-
示例
tcpSocket.sendData({data: "Hello, TCP!" }, (res) => {console.log(res); });
3. 關閉 TCP 連接
closeTcp(callback)
-
參數
callback
(Function): 回調函數,返回操作結果。
-
回調返回值
code
(Number): 狀態碼,1
表示成功,0
表示失敗。msg
(String): 操作結果描述信息。type
(String): 操作類型,固定為"CONNECTION_CLOSED"
。
-
示例
tcpSocket.closeTcp((res) => {console.log(res); });
4. 檢查 TCP 連接狀態
isTcpConnected(callback)
-
參數
callback
(Function): 回調函數,返回操作結果。
-
回調返回值
code
(Number): 狀態碼,1
表示成功,0
表示失敗。msg
(String): 操作結果描述信息。connected
(Boolean): 當前連接狀態,true
表示已連接,false
表示未連接。type
(String): 操作類型,固定為"STATUS_CHECKED"
。
-
示例
tcpSocket.isTcpConnected((res) => {console.log(res.connected); // true 或 false });
注意事項
-
異常處理
- 如果發生異常,所有方法都會通過回調返回錯誤信息,請確保正確處理異常情況。
-
字符編碼
- 數據傳輸默認使用
GBK
編碼,確保發送和接收方的編碼一致。
- 數據傳輸默認使用
-
資源釋放
- 在不再需要 TCP 連接時,務必調用
closeTcp
方法以釋放資源。
- 在不再需要 TCP 連接時,務必調用
示例代碼
以下是一個完整的使用示例:
// 打開 TCP 連接
tcpSocket.openTcp({host: "127.0.0.1",port: 8080
}, (res) => {if (res.code === 1) {console.log("TCP 連接已建立");// 發送數據tcpSocket.sendData({data: "Hello, TCP!"}, (sendRes) => {if (sendRes.code === 1) {console.log("數據發送成功");} else {console.error("數據發送失敗:", sendRes.msg);}// 關閉 TCP 連接tcpSocket.closeTcp((closeRes) => {console.log(closeRes.msg);});});} else {console.error("無法建立 TCP 連接:", res.msg);}
});
以上是 tcpSocket
模塊的完整使用文檔。如有其他問題,請參考源碼或聯系開發者。