微信小程序 网络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 相关文章推荐
namespace.js Javascript的命名空间库
Oct 11 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
Feb 13 Javascript
jQuery对象的length属性用法实例
Dec 27 Javascript
javascript实现标签切换代码示例
May 22 Javascript
AngularJS ng-mousedown 指令
Aug 02 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
HTML的select控件美化
Mar 27 Javascript
JS二叉树的简单实现方法示例
Apr 05 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
JS的深浅复制详细
Oct 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使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP 验证登陆类分享
2015/03/13 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
PHP数组实例详解
2016/06/26 PHP
php intval函数用法总结
2019/04/14 PHP
容易被忽略的JS脚本特性
2011/09/13 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
Angular实现form自动布局
2016/01/28 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
python实现简易内存监控
2018/06/21 Python
详解python while 函数及while和for的区别
2018/09/07 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Python while循环使用else语句代码实例
2020/02/07 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
Python新手学习装饰器
2020/06/04 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
银行员工辞职信范文
2014/01/20 职场文书
年度考核自我评价
2014/01/25 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
2014年公司工作总结
2014/11/22 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
南京南京观后感
2015/06/02 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Python数据分析入门之数据读取与存储
2021/05/13 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
Mysql 8.x 创建用户以及授予权限的操作记录
2022/04/18 MySQL