微信小程序 网络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 相关文章推荐
js用图作提交按钮或超连接
Mar 26 Javascript
jquery 表单取值常用代码
Dec 22 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
May 13 Javascript
ajax 缓存 问题 requestheader
Aug 01 Javascript
js onmousewheel事件多次触发问题解决方法
Oct 17 Javascript
Bootstrap实现默认导航栏效果
Sep 21 Javascript
js实现网页图片延时加载 提升网页打开速度
Jan 26 Javascript
javascript实现PC网页里的拖拽效果
Mar 14 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
webpack 单独打包指定JS文件的方法
Feb 22 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 Javascript
详解JavaScript中Arguments对象用途
Aug 30 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程序实现支持页面后退的两种方法
2008/06/30 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
php object转数组示例
2014/01/15 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
python 实现归并排序算法
2012/06/05 Python
python字典get()方法用法分析
2015/04/17 Python
Python每天必学之bytes字节
2016/01/28 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
综合测评自我鉴定
2013/10/08 职场文书
大学生应聘推荐信范文
2013/11/19 职场文书
优秀员工个人的自我评价
2013/11/29 职场文书
拖鞋店创业计划书
2014/01/15 职场文书
消防安全检查制度
2014/02/04 职场文书
学校对教师的评语
2014/04/28 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
导师对论文的学术评语
2015/01/04 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python