TCP 通信
createTCPSocket
TIP
該API使用方法為: TCPSocket wx.createTCPSocket()
- 功能說明: 創建一個TCP Socket實例。
- 返回值: 一個TCP Socket實例。
- 链接限制
- 允許與局域網內的非本機IP通信;
- 允許與配置過的服務器功能變量名稱通信,詳見 相關說明。
- 禁止與以下埠號連接:1024以下、1099、1433、1521、1719、1720、1723、2049、2375、3128、3306、3389、3659、4045、5060、5061、5432、5984、6379、6000、6566、7001、7002、8000-8100、8443、8888、9200、9300、10051、10080、11211、27017、27018、27019;
- 每5分鐘內最多創建20個TCPSocket。
TCPSocket
說明
- 一個TCP Socket實例,默認使用IPv4協定。
- 當errCode為-2時,errMsg裏應該會有相應的errno,開發者可以根據errno到Linux代碼裏的 errno-base.h 和 errno.h
.bindWifi
TIP
該API使用方法為: TCPSocket.bindWifi(Object options)
功能說明: 將TCP Socket綁定到當前Wi-Fi網絡,成功後會觸發onBindWifi事件(僅Android支持)
參數及說明: Object options。
内容 類型 預設值 必填 說明 BSSID string - 是 當前Wi-Fi網絡的BSSID,可通過wx.getConnectedWifi獲取 示例代碼:
const tcp = wx.createTCPSocket()
tcp.bindWifi({ BSSID: 'xxx' })
tcp.onBindWifi(() => {}).close
TIP
該API使用方法為: TCPSocket.close()
功能說明: 關閉連接。
示例代碼:
const tcp = wx.createTCPSocket()
tcp.close().connect
TIP
該API使用方法為: TCPSocket.connect(Object options)
功能說明: 在給定的套接字上啟動連接。
參數及說明: Object options。
内容 類型 預設值 必填 說明 address string - 是 通訊端要連接的地址 port number - 是 通訊端要連接的埠 timeout number 2 否 通訊端要連接的超時時間,默認為2s 示例代碼:
const tcp = wx.createTCPSocket()
tcp.connect({address: '192.168.193.2', port: 8848}).onClose
TIP
該API使用方法為: TCPSocket.onClose(function listener)
- 功能說明: 監聽一旦socket完全關閉就發出該事件。
- 參數及說明: function listener,一旦socket完全關閉就發出該事件的監聽函數。。
.offClose
TIP
該API使用方法為: TCPSocket.offClose(function listener)
功能說明: 移除一旦socket完全關閉就發出該事件的監聽函數。
參數及說明: function listener onClose傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
TCPSocket.onConnect(listener)
TCPSocket.offConnect(listener) // Pass the same function object used for listening..onConnect
TIP
該API使用方法為: TCPSocket.onConnect(function listener)
- 功能說明: 監聽當一個socket連接成功建立的時候觸發該事件。
- 參數及說明: function listener,當一個socket連接成功建立的時候觸發該事件的監聽函數。。
.offConnect
TIP
該API使用方法為: TCPSocket.offConnect(function listener)
功能說明: 移除當一個socket連接成功建立的時候觸發該事件的監聽函數。
參數及說明: function listener onConnect傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
TCPSocket.onConnect(listener)
TCPSocket.offConnect(listener) // Pass the same function object used for listening..onError
TIP
該API使用方法為: TCPSocket.offError(function listener)
功能說明: 監聽當錯誤發生時觸發。
參數及說明: function listener的監聽函數。
内容 類型 說明 errMsg string 錯誤資訊
.offError
TIP
該API使用方法為: TCPSocket.offError(function listener)
功能說明: 移除當錯誤發生時觸發的監聽函數。
參數及說明: function listener, onError傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
TCPSocket.onError(listener)
TCPSocket.offError(listener) // Pass the same function object used for listening..onMessage
TIP
該API使用方法為: TCPSocket.onMessage(function listener)
功能說明: 監聽當接收到數據的時觸發該事件
參數及說明: function listener, 當接收到數據的時觸發該事件的監聽函數,參數Object res如下:
内容 類型 說明 message ArrayBuffer 收到的消息 remoteInfo Object 發送端地址資訊 localInfo Object 接收端地址資訊 remoteInfo結構内容
内容 類型 說明 address string 發送消息的socket的地址 family string 使用的協定族,為IPv4或者IPv6 port number 埠號 size number message的大小,單位:位元組 localInfo結構内容
内容 類型 說明 address string 發送消息的socket的地址 family string 使用的協定族,為IPv4或者IPv6 port number 埠號
.offMessage
TIP
該API使用方法為: TCPSocket.offMessage(function listener)
功能說明: 移除當接收到數據的時觸發該事件的監聽函數。
參數及說明: function listener, onMessage傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
TCPSocket.onMessage(listener)
TCPSocket.offMessage(listener) // Pass the same function object used for listening..onBindWifi
TIP
該API使用方法為: TCPSocket.onBindWifi(function listener)
- 功能說明: 監聽當一個socket綁定當前Wi-Fi網絡成功時觸發該事件。
- 參數及說明: function listener, 當一個socket綁定當前Wi-Fi網絡成功時觸發該事件的監聽函數。
.offBindWifi
TIP
該API使用方法為: TCPSocket.offBindWifi(function listener)
功能說明: 移除當一個socket綁定當前Wi-Fi網絡成功時觸發該事件的監聽函數。
參數及說明: function listener, onBindWifi傳入的監聽函數。 不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
TCPSocket.onBindWifi(listener)
TCPSocket.offBindWifi(listener) // Pass the same function object used for listening..write
TIP
該API使用方法為: TCPSocket.write(string|ArrayBuffer data)
功能說明: 在socket上發送數據。
參數及說明: string|ArrayBuffer data, 要發送的數據。
示例代碼:
const tcp = wx.createTCPSocket()
tcp.write('hello, how are you')