微信小程序 网络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 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
IE 条件注释详解总结(附实例代码)
Aug 29 Javascript
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
JS中的构造函数详细解析
Mar 10 Javascript
微信小程序 Image API实例详解
Sep 30 Javascript
原生js实现手风琴功能(支持横纵向调用)
Jan 13 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
Oct 07 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
微信小程序 网络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
Smarty Foreach 使用说明
2010/03/23 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
PHP实现验证码校验功能
2017/11/16 PHP
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
JointJS流程图的绘制方法
2018/12/03 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Django实现快速分页的方法实例
2017/10/22 Python
快速了解Python相对导入
2018/01/12 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
python3实现猜数字游戏
2020/12/07 Python
python中自带的三个装饰器的实现
2019/11/08 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
党建工作经验交流材料
2014/05/25 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书