微信小程序 网络API Websocket详解


Posted in Javascript onNovember 09, 2016

微信小程序 网络API:

wx.connectSocket(OBJECT)

​ 创建一个 WebSocket 连接;一个微信小程序同时只能有一个WebSocket连接,如果当前已存在一个WebSocket连接,会自动关闭该连接,并重新创建一个WebSocket连接。

OBJECT参数说明:

参数 类型 必填 说明
url String 开发者服务器接口地址,必须是HTTPS协议,且域名必须是后台配置的合法域名
data Object 请求的数据
header Object HTTP Header
method String 默认是GET,有效值为: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

wx.connectSocket({
 url:"test.php",
 data:{
 x:"",
 y:""
 },
 header:{ 
 'content-type': 'application/json'
 },
 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参数说明:

参数 类型 必填 说明
data String 需要发送的内容

示例代码:

var socketOpen = false;
var 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返回参数:

参数 类型 说明
data String 服务器返回的消息

示例代码:

wx.connectSocket({
 url:"test.php"
});

wx.onSocketMessage(function(res){
 console.log("收到服务器内容:" + res.data)
})

wx.closeSocket()

​ 关闭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 已关闭!")
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
详解jquery uploadify 上传文件
Nov 09 Javascript
Jquery 动态生成表格示例代码
Dec 24 Javascript
JavaScript中的分号插入机制详细介绍
Feb 11 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
Dec 13 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
Javascript中的作用域及块级作用域
Dec 08 Javascript
浅谈React中的元素、组件、实例和节点
Feb 27 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
Apr 26 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 Javascript
微信小程序 网络API 上传、下载详解
Nov 09 #Javascript
微信小程序 网络API发起请求详解
Nov 09 #Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
Nov 09 #Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
Nov 09 #Javascript
微信小程序 loading 详解及实例代码
Nov 09 #Javascript
微信小程序 toast 详解及实例代码
Nov 09 #Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
Nov 09 #Javascript
You might like
PHP date函数参数详解
2006/11/27 PHP
php把session写入数据库示例
2014/02/26 PHP
php按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
JS实现self的resend
2010/07/22 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
jQuery实现增删改查
2020/12/22 jQuery
Python列表的切片实例讲解
2019/08/20 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
业务主管岗位职责
2013/11/20 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
绩效管理实施方案
2014/03/19 职场文书
广播节目策划方案
2014/05/23 职场文书
领导欢迎词范文
2015/01/26 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
办公经费申请报告
2015/05/15 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis