首先为什么需要WebSoct?
- HTTP协议有一个缺陷:通信只能由客户端发起。
- HTTP协议做不到服务器主动向客户推送信息。
而WebSocket就是为了解决这个问题而来的,说白了就是HTTP请求是客户端请求服务端响应 客户端请求服务端响应 … WebSocket是客户端请求一次 服务端响应一次就可以建立双向的连接。
2.微信小程序使用websocket
<text>pages/wx/test1/test1.wxml</text>
<input type="text" />
<button bindtap="sendClick">发送内容</button>
<view wx:for="{{result}}">
{{item}}
</view>
var socket = null; //全局定义socket对象
Page({
/**
* 页面的初始数据
*/
data: {
result: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var _this = this;
//创建websocket
//正式地址使用wss
socket = wx.connectSocket({
url: 'ws://localhost:5032/wstest/one',
success: res => {
console.info('创建连接成功');
//socketTaskId: 22
// console.info(res);
}
});
// console.info(socket);
//事件监听
socket.onOpen(function () {
console.info('连接打开成功');
});
socket.onClose(function () {
console.info('连接关闭成功');
});
socket.onError(function () {
console.info('连接报错');
});
//服务器发送监听
socket.onMessage(function (e) {
console.info(e);
var data = e.data;
var list = _this.data.result;
list = list.concat([data]);
_this.setData({
result: list
});
});
},
//发送事件
sendClick() {
socket.send({
data: '客户端测试内容',
success: res => {
console.info('客户端发送成功');
}
});
}
})
3.当然如果你是单纯的使用里面的聊天功能
<button open-type="contact">客服聊天</button>