Skip to content

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.herrno.h

.bindWifi

TIP

該API使用方法為: TCPSocket.bindWifi(Object options)

  • 功能說明: 將TCP Socket綁定到當前Wi-Fi網絡,成功後會觸發onBindWifi事件(僅Android支持)

  • 參數及說明: Object options。

    内容類型預設值必填說明
    BSSIDstring-當前Wi-Fi網絡的BSSID,可通過wx.getConnectedWifi獲取
  • 示例代碼:

js
const tcp = wx.createTCPSocket()  
tcp.bindWifi({ BSSID: 'xxx' })  
tcp.onBindWifi(() => {})

.close

TIP

該API使用方法為: TCPSocket.close()

  • 功能說明: 關閉連接。

  • 示例代碼:

js
const tcp = wx.createTCPSocket()  
tcp.close()

.connect

TIP

該API使用方法為: TCPSocket.connect(Object options)

  • 功能說明: 在給定的套接字上啟動連接。

  • 參數及說明: Object options。

    内容類型預設值必填說明
    addressstring-通訊端要連接的地址
    portnumber-通訊端要連接的埠
    timeoutnumber2通訊端要連接的超時時間,默認為2s
  • 示例代碼:

js
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傳入的監聽函數。 不傳此參數則移除所有監聽函數。

  • 示例代碼:

js
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傳入的監聽函數。 不傳此參數則移除所有監聽函數。

  • 示例代碼:

js
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的監聽函數。

    内容類型說明
    errMsgstring錯誤資訊

.offError

TIP

該API使用方法為: TCPSocket.offError(function listener)

  • 功能說明: 移除當錯誤發生時觸發的監聽函數。

  • 參數及說明: function listener, onError傳入的監聽函數。 不傳此參數則移除所有監聽函數。

  • 示例代碼:

js
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如下:

    内容類型說明
    messageArrayBuffer收到的消息
    remoteInfoObject發送端地址資訊
    localInfoObject接收端地址資訊
    • remoteInfo結構内容

      内容類型說明
      addressstring發送消息的socket的地址
      familystring使用的協定族,為IPv4或者IPv6
      portnumber埠號
      sizenumbermessage的大小,單位:位元組
    • localInfo結構内容

      内容類型說明
      addressstring發送消息的socket的地址
      familystring使用的協定族,為IPv4或者IPv6
      portnumber埠號

.offMessage

TIP

該API使用方法為: TCPSocket.offMessage(function listener)

  • 功能說明: 移除當接收到數據的時觸發該事件的監聽函數。

  • 參數及說明: function listener, onMessage傳入的監聽函數。 不傳此參數則移除所有監聽函數。

  • 示例代碼:

js
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傳入的監聽函數。 不傳此參數則移除所有監聽函數。

  • 示例代碼:

js
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, 要發送的數據。

  • 示例代碼:

js
const tcp = wx.createTCPSocket()  
tcp.write('hello, how are you')