1、wxml页面测试代码:
<view>
<t-search model:value="{
{input_search_text}}" placeholder="请输入你要搜索的内容" bindinput="inputing"/>
<button bindtap='test_socket'>测试</button>
<t-textarea t-class="external-class" value="{
{content}}" placeholder="请输入文字" disableDefaultPadding="{
{true}}" />
</view>
2、js测试代码:
主要步骤:
(1)通过SocketTask = wx.connectSocket创建连接
(2)通过SocketTask.onOpen打开连接
(3)通过SocketTask.send发送消息,这个是异步的
(4)通过SocketTask.onMessage接收对方发送的消息
data: {
content: '',
input_search_text: '',
},
test_socket(e) {
this.data.content = '';
let SocketTask = wx.connectSocket({
url: "ws://<ip>:<port>/websocket/1111-1111-1111-1111",
success: function (res) {
console.log("客户端连接成功!");
console.log(res)
},
fail: function(err){
console.err(err)
}
});
SocketTask.onOpen((res) => {
console.log("客户端打开成功!");
SocketTask.send({
data: JSON.stringify(this.data.input_search_text),
success: function(res) {
console.log("发送成功!");
}
});
});
SocketTask.onMessage((res) => {
console.log(res);
if(res.data != "{}" && res.data != "[DONE]"){
let data = JSON.parse(res.data);
console.log(data, '服务器的消息');
if(typeof(data.content) !== "undefined"){
this.setData({
content : this.data.content + data.content
});
}
}
});
},
3、测试发现,websocket性能有问题,有时候几个字的返回要卡半分钟。