微信小程序开发API Websocket
wx.connectSocket(OBJECT)
创建一个 WebSocket 连接;一个微信小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。
OBJECT参数说明:
示例代码:
wx.connectSocket({ url: 'test.php', data:{ x: '', y: '' }, header:{ 'content-type': 'application/json' },
protocols: ['protocol1'], method:"GET"})
wx.onSocketOpen(CALLBACK)
监听WebSocket连接打开事件。
示例代码:
wx.connectSocket({ url: 'test.php'})wx.onSocketOpen(function(res) { console.log('WebSocket连接已打开!')})
wx.onSocketError(CALLBACK)
监听WebSocket错误。
示例代码:
wx.connectSocket({ url: 'test.php'})wx.onSocketOpen(function(res){ console.log('WebSocket连接已打开!')})wx.onSocketError(function(res){ console.log('WebSocket连接打开失败,请检查!')})
wx.sendSocketMessage(OBJECT)
通过 WebSocket 连接发送数据,需要先 wx.connectSocket,并在 wx.onSocketOpen 回调之后才能发送。
OBJECT参数说明:
示例代码:
var socketOpen = falsevar socketMsgQueue = []wx.connectSocket({ url: 'test.php'})wx.onSocketOpen(function(res) { socketOpen = true for (var i = 0; i < socketMsgQueue.length; i++){ sendSocketMessage(socketMsgQueue[i]) } socketMsgQueue = []})function sendSocketMessage(msg) { if (socketOpen) { wx.sendSocketMessage({ data:msg }) } else { socketMsgQueue.push(msg) }}
wx.onSocketMessage(CALLBACK)
监听WebSocket接受到服务器的消息事件。
CALLBACK返回参数:
示例代码:
wx.connectSocket({ url: 'test.php'})wx.onSocketMessage(function(res) { console.log('收到服务器内容:' + res.data)})
wx.closeSocket(OBJECT)
关闭WebSocket连接。
wx.onSocketClose(CALLBACK)
监听WebSocket关闭。
wx.connectSocket({ url: 'test.php'})//注意这里有时序问题,//如果 wx.connectSocket 还没回调 wx.onSocketOpen,而先调用 wx.closeSocket,那么就做不到关闭 WebSocket 的目的。//必须在 WebSocket 打开期间调用 wx.closeSocket 才能关闭。wx.onSocketOpen(function() { wx.closeSocket()})wx.onSocketClose(function(res) { console.log('WebSocket 已关闭!')})
返回值:
基础库 1.7.0 开始支持,低版本需做兼容处理
返回一个 SocketTask。
Bug & Tip
tip
: createSocket 链接默认和最大超时时间都是 60stip
: 网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}
为小程序的 appid,{version}
为小程序的版本号,版本号为 0 表示为开发版。
SocketTask
基础库 1.7.0 开始支持,低版本需做兼容处理
WebSocket 任务,可通过 wx.connectSocket() 接口创建返回。
方法
SocketTask.send(OBJECT)
通过 WebSocket 连接发送数据。
OBJECT参数说明:
SocketTask.close(OBJECT)
关闭 WebSocket 连接。
OBJECT参数说明:
SocketTask.onOpen(CALLBACK)
监听 WebSocket 连接打开事件。
SocketTask.onOpen(CALLBACK)
监听 WebSocket 连接关闭事件。
SocketTask.onError(CALLBACK)
监听 WebSocket 错误。
CALLBACK返回参数:
SocketTask.onMessage(CALLBACK)
监听WebSocket接受到服务器的消息事件。
CALLBACK返回参数:
>更多相关文章
- 01-30微信小程序设计规范(1) 友好礼貌
- 01-30微信小程序设计规范(3) 便捷优雅
- 01-30微信小程序设计规范(2) 清晰明确
- 01-30微信小程序设计规范(5) 视觉规范
- 01-30微信小程序设计规范(4) 统一稳定
- 01-18微信小程序工具 beta版本下载
- 01-18微信小程序工具细节点
- 01-18微信小程序工具 下载地址
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 11-18LG新能源宣布与Bear Robotics达成合作,成为
- 11-18机构:三季度全球个人智能音频设备市场强势
- 11-18闲鱼:注册用户过6亿 AI技术已应用于闲置交
- 11-18美柚、宝宝树回应“涉黄短信骚扰”:未发现
- 11-01京东七鲜与前置仓完成融合
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御