当前位置:首页 > 日记 > 正文

微信小程序使用Socket的实例

微信小程序使用Socket的实例

微信小程序使用Socket的实例

首先,一个小程序同时只能有一个WebSocket连接,如果当前已经存在一个WebSocket连接,会关闭当前连接,并重新建立一个连接。

其次,如果使用了appID,协议必须是 wss://...

最近团队用小程序做行情,在连接socket的时候,发现在还没有进行subscribe的情况下,就直接进行了广播,并且自动关闭了socket连接,

时间紧迫,抓耳挠腮,遂引用了socket-io(基于小程序的websocket仿写的socket-io,并非官方的socket-io,传送门),使用方法:

1、先在utils文件夹粘贴一个io的js

2、然后 npm install wxapp-socket-io

3、config文件夹下新建一个socket.js,对socket连接进行封装,如下:

const io = require('../utils/io.js')let url = 'wss://......'let wsStatus = falselet onSocket = nullexport const connect = function(cb){  if(!onSocket){    onSocket = io(url)    onSocket.on('connect', function (res) {      cb(true,onSocket)      wsStatus = true    })    setTimeout(function(){      if(!wsStatus){        cb(false,onSocket)      }    },10000)  }else{    cb(true,onSocket)  }}

4、在要引用的页面调用,全局封装订阅方法

let openSocket = require('../../config/socket')let app = getApp()let socket = nullPage({data: {  zl: [[422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525], [422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525]]},onLoad: function () {  let that = this;  //socket调用  openSocket.connect(function (status, ws) {    if (status) {      socket = ws      this.subscribe('zl')//对封装好对订阅方法进行调用      socket.on('broadcast', function (msg) {//广播        console.log("broadcast");        console.log(msg);      })    } else {      alert("socket 连接失败")    }  });},subscribe: function (type) {  if (socket) {    let eis = this.data[type]    if (eis && eis.length > 0) {      let param = {//仅供参考,根据接口自行更改        eis: eis.join(',')      }      socket.emit('subscribe', JSON.stringify(param));    }  }}});

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

如何去掉word页码的两种方法

如何去掉word页码的两种方法

方法,页码,两种,电脑软件,word,  Microsoft Word应用广泛,在处理很多文档时比较实用,有时写文档时需要加入页码,在插入菜单中选择页码即可,那去掉页码该怎么办呢?那么下面就由小编给大家分享下去掉word页码的技巧,希望能帮助到您。去掉word页…

为Excel2010设置纸张大小的方法是

为Excel2010设置纸张大小的方法是

设置,方法,纸张,大小,电脑软件,  在Excel2010表格的使用中,用户根据实际需要设置工作表所使用的纸张大小,可以通过两种方式进行设置。以下是小编为您带来的关于为Excel2010设置纸张大小,希望对您有所帮助。为Excel2010设置纸张大小操作步骤…

怎么在word中插入特殊符号在word中

怎么在word中插入特殊符号在word中

特殊符号,步骤,方法,电脑软件,word,  大家平时在制作文档时,经常会遇到普通文本意外的特殊符号,如№、§等,这些符号可通过word提供的特殊符号功能进行输入。那么下面小编就教你怎么在word中插入特殊符号。在word中插入特殊符号的步骤启…

JS判断键盘是否按的回车键并触发指

JS判断键盘是否按的回车键并触发指

操作,键盘,回车键,方法,按钮,实例如下:document.onkeydown = function (e) { if (!e) e = window.event; if ((e.keyCode || e.which) == 13) { var obtnLogin = document.getElementById("submit_btn"); //submit_btn…

详解Vue2.0 事件派发与接收

详解Vue2.0 事件派发与接收

事件,详解,电脑软件,由于vue2.0 移除了1.0中的$dispatch 和$broadcast 这两个组件之间通信传递数据的方法 ,官方的给出的最简单的升级建议是使用集中的事件处理器,而且也明确说明了 一个空的vue实例就可以做到,因为Vue 实例实现了一个事件…

setTimeout学习小结

setTimeout学习小结

学习,电脑软件,setTimeout,大致介绍今天看了一篇文章,觉得写得不错,所以学习了一下,这篇博客是我自己的理解和总结原文:你应该知道的 setTimeout 秘密主要内容: 1、setTimeout原理 2、setTimeout(function(){..},0)的意义 3、setTimeout的thi…

excel中if函数嵌套式使用教程

excel中if函数嵌套式使用教程

函数,嵌套,使用教程,数据统计,示例,  Excel中经常需要使用到if函数的时候需要嵌套进行判断更多条件,if函数嵌套式具体该如何使用呢?下面是由小编分享的excel中if函数嵌套式使用教程,以供大家阅读和学习。excel中if函数嵌套式使用教程嵌套if…

猜不透的心经典个性签名

猜不透的心经典个性签名

不透,个性签名,热门,简单,新篇,  人人都有一颗心。心之官则思。猜不透的心,难猜的心,你想表达什么呢?猜不透的心经典个性签名有哪些的呢?本文是小编整理猜不透的心经典个性签名的资料,仅供参考。猜不透的心经典个性签名【简单篇】“灯红…

d3.js入门教程之数据绑定详解

d3.js入门教程之数据绑定详解

数据绑定,详解,入门教程,电脑软件,js,前言d3.js 是一款上手容易的js类库,专门用于绘制svg图形图表,其关键理念为data-join 意即数据绑定.搞清这个概念非常重要,它将以简洁优雅的形式体现数据驱动编程.以下是Thinking with Joins的拙译 ,原…

浅谈javascript中的 “ && ” 和

浅谈javascript中的 “ && ” 和

浅谈,电脑软件,javascript,有时候,我们会在jQuery框架或者其他js插件中发现里面有很多 “ && ” 和 “ || ”,那么这两个标识到底是什么含义?怎么使用?我觉得还是有必要稍微深究一下。一、原理:&& 操作符特点:逻辑运算表达式中只要一个是false就…

Word2007怎样快速转换成PDF格式

Word2007怎样快速转换成PDF格式

转换成,快速,格式,电脑软件,PDF,  Word和PDF是常见的办公文档格式,这两种格式有时需要进行格式转换。那么下面就由小编为您分享下Word2007快速转换成PDF格式的技巧,希望能帮助您,有需要的朋友可以来看看哦。快速转换成PDF格式的步骤如下:  …

JavaScript数组迭代方法

JavaScript数组迭代方法

数组,方法,迭代,电脑软件,JavaScript,最近工作中经常涉及到数据的处理,数组尤其常见,经常需要对其进行遍历、转换操作,网上的文章零零散散,不得已自己又找出红宝书来翻出来看,顺便记一笔,便于以后查询。数组常用的迭代方法ECMAScript5为数组定义…