2***@qq.com
2***@qq.com
  • 发布:2019-11-14 18:08
  • 更新:2021-08-05 09:30
  • 阅读:3171

全局webSocket.js

分类:uni-app

1、根目录创建socket.js文件:

var websocket = weex.requireModule('webSocket')  
var connect = function() {  
    websocket.WebSocket('ws://192.168.31.250:8081/ws', '');  
    websocket.onopen(function(e) {  
        console.log('websocket已经打开');  
    });  
    websocket.onmessage(function(e) {  
        uni.$emit("onMsg"+e.data.status,e)  
    });  
    websocket.onerror(function(e) {  
        console.log("异常:" + JSON.stringify(e.data));  
        // console.log(e.data);    
    });  
    websocket.onclose(function(e) {  
        // console.log(  '');     
        console.log('连接已经关闭');  
        // console.log(  e.code);      
    });  
}  
function cls(){  
    websocket.close();  
}  
export default {  
    cls,  
    connect  
}

2.1、App.vue中引入:

import sockect from "socket.js"

2.2:onShow中调用:

sockect.connect()

2.3:onHide中删除:

sockect.cls()

3:各个页面中:
index.vue中:

uni.$on('onMsg1', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

user.vue中:

uni.$on('onMsg2', function(data) {  
                console.log('监听到事件来自 update ,携带参数 msg 为:' + JSON.stringify(data));  
            })

每个页面都监测一个不同的方法,方法名只是最后一个数字变了,让后台传数据时再传个状态值指明调用哪个方法的末尾值,这样就达到了全局的效果

0 关注 分享

要回复文章请先登录注册

jonychen1

jonychen1

插件市场的这款GoEasy_websocket插件用起来就还很不错的,在插件市场的下载量也很大,我们实际使用下来,稳定性不错,对APP和小程序的兼容性很好,整体效果还不错。你们也可以试试:[https://ext.dcloud.net.cn/plugin?id=1334](https://ext.dcloud.net.cn/plugin?id=1334)
2021-08-05 09:30
2***@qq.com

2***@qq.com (作者)

回复 2***@qq.com :
你有没有开nvue模式
2020-04-22 13:30
2***@qq.com

2***@qq.com

运行提示weex is not defined
2020-04-19 11:28
2***@qq.com

2***@qq.com (作者)

今天刚写的,还有bug望各位指出,还有这个可以将weex改为uniapp封装的,这边就不写了。
2019-11-14 18:11