## uni.connectSocket(OBJECT)
**創建一個 WebSocket 連接。**
**OBJECT 參數說明:**

**示例代碼:**
```
uni.connectSocket({
url: 'wss://www.example.com/socket',
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json'
},
protocols: ['protocol1'],
method: "GET"
});
```
## uni.onSocketOpen(CALLBACK)
監聽WebSocket連接打開事件。
**callback 回調函數:**
**參數**

**示例代碼:**
```
uni.connectSocket({
url: 'wss://www.example.com/socket'
});
uni.onSocketOpen(function (res) {
console.log('WebSocket連接已打開!');
});
```
## uni.onSocketError(CALLBACK)
監聽WebSocket錯誤。
**示例代碼:**
```
uni.connectSocket({
url: 'wss://www.example.com/socket'
});
uni.onSocketOpen(function (res) {
console.log('WebSocket連接已打開!');
});
uni.onSocketError(function (res) {
console.log('WebSocket連接打開失敗,請檢查!');
});
```
## uni.sendSocketMessage(OBJECT)
通過 WebSocket 連接發送數據,需要先 uni.connectSocket,并在 uni.onSocketOpen 回調之后才能發送。
**OBJECT 參數說明:**

**示例代碼:**
```
var socketOpen = false;
var socketMsgQueue = [];
uni.connectSocket({
url: 'wss://www.example.com/socket'
});
uni.onSocketOpen(function (res) {
socketOpen = true;
for (var i = 0; i < socketMsgQueue.length; i++) {
sendSocketMessage(socketMsgQueue[i]);
}
socketMsgQueue = [];
});
function sendSocketMessage(msg) {
if (socketOpen) {
uni.sendSocketMessage({
data: msg
});
} else {
socketMsgQueue.push(msg);
}
}
```
##
## uni.onSocketMessage(CALLBACK)
監聽WebSocket接受到服務器的消息事件。
**CALLBACK 返回參數:**

示例代碼:
```
uni.connectSocket({
url: 'wss://www.example.com/socket'
});
uni.onSocketMessage(function (res) {
console.log('收到服務器內容:' + res.data);
});
```
**uni.closeSocket(OBJECT)**
**關閉 WebSocket 連接**。

## uni.onSocketClose(CALLBACK)
**監聽WebSocket關閉。**
```
uni.connectSocket({
url: 'wss://www.example.com/socket'
});
// 注意這里有時序問題,
// 如果 uni.connectSocket 還沒回調 uni.onSocketOpen,而先調用 uni.closeSocket,那么就做不到關閉 WebSocket 的目的。
// 必須在 WebSocket 打開期間調用 uni.closeSocket 才能關閉。
uni.onSocketOpen(function () {
uni.closeSocket();
});
uni.onSocketClose(function (res) {
console.log('WebSocket 已關閉!');
});
```
**返回值:**
返回一個 SocketTask。