UDP 通信
createUDPSocket
TIP
該API使用方法為: UDPSocket wx.createUDPSocket()
- 功能說明: 創建一個UDP Socket實例。
- 返回值: UDPSocket, 一個UDP Socket實例。
UDPSocket
說明
一個UDP Socket實例,默認使用IPv4協定。
.bind
TIP
該API使用方法為: number UDPSocket.bind(number port)
功能說明: 綁定一個系統隨機分配的可用埠,或綁定一個指定的埠號。
參數及說明: number port, 指定要綁定的埠號,不傳則返回系統隨機分配的可用埠。
返回值: number, 綁定成功的埠號。
示例代碼:
const udp = wx.createUDPSocket()
const port = udp.bind().close
TIP
該API使用方法為: UDPSocket.close()
- 功能說明: 關閉UDP Socket實例,相當於銷毀。 在關閉之後,UDP Socket實例不能再發送消息,每次調用UDPSocket.send將會觸發錯誤事件,並且message事件回呼函數也不會再也執行,在UDPSocket實例被創建後將被Native强引用,保證其不被GC,在UDPSocket.close後將解除對其的强引用,讓UDPSocket實例遵從GC。
.connect
TIP
該API使用方法為: UDPSocket.connect(Object object)
功能說明: 預先連接到指定的IP和port,需要配合write方法一起使用。
參數及說明: Object object
内容 類型 預設值 必填 說明 address string - 是 要發消息的地址 port number - 是 要發送消息的埠號 示例代碼:
const udp = wx.createUDPSocket()
udp.bind()
udp.connect({
address: '192.168.193.2',
port: 8848,
})
udp.write({
address: '192.168.193.2',
port: 8848,
message: 'hello, how are you'
}).onClose
TIP
該API使用方法為: UDPSocket.onClose(function listener)
- 功能說明: 監聽關閉事件。
- 參數及說明: function listener 關閉事件的監聽函數。
.offClose
TIP
該API使用方法為: UDPSocket.offClose(function listener)
功能說明: 移除關閉事件的監聽函數。
參數及說明: function listener onClose傳入的監聽函數,不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
UDPSocket.onClose(listener)
UDPSocket.offClose(listener) // Pass the same function object used for listening..onError
TIP
該API使用方法為: UDPSocket.onError(function listener)
功能說明: 監聽錯誤事件。
參數及說明: function listener, 錯誤事件的監聽函數,參數Object res如下
内容 類型 說明 errMsg string 錯誤資訊
.offError
TIP
該API使用方法為: UDPSocket.offError(function listener)
功能說明: 移除錯誤事件的監聽函數。
參數及說明: function listener, onError傳入的監聽函數,不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
UDPSocket.onError(listener)
UDPSocket.offError(listener) // Pass the same function object used for listening..onListening
TIP
該API使用方法為: UDPSocket.onListening(function listener)
- 功能說明: 監聽開始監聽數据包消息的事件。
- 參數及說明: function listener, 開始監聽數据包消息的事件的監聽函數。
.offListening
TIP
該API使用方法為: UDPSocket.offListening(function listener)
功能說明: 移除開始監聽數据包消息的事件的監聽函數。
參數及說明: function listener, onListening傳入的監聽函數,不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
UDPSocket.onListening(listener)
UDPSocket.offListening(listener) // Pass the same function object used for listening..onMessage
TIP
該API使用方法為: UDPSocket.onMessage(function listener)
功能說明: 監聽收到消息的事件。
參數及說明: function listener, 收到消息的事件的監聽函數,參數Object res如下:
内容 類型 說明 message ArrayBuffer 收到的消息。 消息長度需要小於4096 remoteInfo Object 發送端地址資訊 - remoteInfo結構内容
内容 類型 說明 address string 發送消息的socket的地址 family string 使用的協定族,為IPv4或者IPv6 port number 埠號 size number message的大小,單位:位元組
- remoteInfo結構内容
.offMessage
TIP
該API使用方法為: UDPSocket.offMessage(function listener)
功能說明: 移除收到消息的事件的監聽函數。
參數及說明: function listener, onMessage傳入的監聽函數,不傳此參數則移除所有監聽函數。
示例代碼:
const listener = function (res) { console.log(res) }
UDPSocket.onMessage(listener)
UDPSocket.offMessage(listener) // Pass the same function object used for listening..send
TIP
該API使用方法為: UDPSocket.send(Object object)
功能說明: 向指定的IP和port發送消息。
參數及說明: Object object。
内容 類型 預設值 必填 說明 address string - 是 要發消息的地址。 port number - 是 要發送消息的埠號 message string/ArrayBuffer - 是 要發送的數據 offset number 0 否 發送數據的偏移量,僅當message為ArrayBuffer類型時有效 length number message.byteLength 否 發送數據的長度,僅當message為ArrayBuffer類型時有效 示例代碼:
const udp = wx.createUDPSocket()
udp.bind()
udp.send({
address: '192.168.193.2',
port: 8848,
message: 'hello, how are you'
}).setTTL
TIP
該API使用方法為: UDPSocket.setTTL(number ttl)
功能說明: 設定IP_TTL通訊端選項,用於設定一個IP數据包傳輸時允許的最大跳步數。
參數及說明: number ttl, ttl參數可以是0到255之間。
示例代碼:
const udp = wx.createUDPSocket()
udp.onListening(function () {
udp.setTTL(64)
})
udp.bind().write
TIP
該API使用方法為: UDPSocket.write()
- 功能說明: 用法與send方法相同,如果沒有預先調用connect則與send無差异。
說明
即使調用了connect也需要在本接口填入地址和埠參數。
- 示例代碼:
const udp = wx.createUDPSocket()
udp.bind()
udp.connect({
address: '192.168.193.2',
port: 8848,
})
udp.write({
address: '192.168.193.2',
port: 8848,
message: 'hello, how are you'
})