木四
木四
  • 发布:2019-12-11 02:36
  • 更新:2022-03-30 20:01
  • 阅读:10341

uniapp开发小程序,全局应用websocket

分类:uni-app

以前写vue页面的时候写过聊天室,这次用uniapp开发小程序,用到了websocket,记录下心得体会

前言:
后台使用了nodejs的express-ws模块,分享一篇介绍express-ws非常好的帖子https://www.jianshu.com/p/136da96d3d48
对于前端人员,不用管后台socket如何实现的,用的什么模块,因为socket只是个协议
在uniapp中,也不用纠结用框架自带的websocket的api,还是引入socket.io.js。
既然框架已经给我们集成这个功能了,直接用就对了,非常方便

首先在app.vue中建立连接
注:在任意组件下建立socket连接均可,框架提供的api是全局的

        onShow: function() {  
            console.log('App Show')  
            uni.connectSocket({  
                url: 'wss://localhost', //仅为示例,并非真实接口地址。  
                success: () => {  
                    console.log('socket success');  
                },  
                fail: (err) => {  
                    console.log(err)  
                },  
                complete: () => {}  
            });  
        },  
        onHide: function() {  
            console.log('App Hide')  
            uni.closeSocket({  
                code:1000,  
                reason:'App Hide'  
            })  
        }

建立连接后,在任意组件中调用相关api即可,实在是简单得不能简单了

以下是测试结果

ps:也可以用uni.connectSocket() 接口创建SocketTask 对象,在main.js中全局注册,优点是使用更方便,缺点是关闭连接后,需在代码中实现重新打开连接!

0 关注 分享

要回复文章请先登录注册

w***@wicos.cn

w***@wicos.cn

回复 jonychen1 :
LJ玩意,闭嘴吧
2022-03-30 20:01
佚名9527

佚名9527

回复 2***@qq.com :
到处打广告
2022-01-04 17:09
2***@qq.com

2***@qq.com

回复 佚名9527 :
钱是大风刮来的?
2021-11-11 16:27
佚名9527

佚名9527

到处都有GoEasy , 真的服了
2021-09-01 08:42
jonychen1

jonychen1

要是想简单点的话可以试试第三方websocket推送框架GoEasy,有免费版的,提供完整的websocket前后端解决方案,支持多种前后端语言的使用,我一般都用这个,自己构建太麻烦了,还费时间,有兴趣可以试一下。地址:https://www.goeasy.io
2021-06-18 10:12
2***@qq.com

2***@qq.com

websocket发送信息的时候可以异步,然后全局吗,还有语音吗
2021-01-29 15:14
1***@qq.com

1***@qq.com

回复 jonychen1 :
那么贵,怎么不去死
2020-08-13 15:34
2***@qq.com

2***@qq.com

还是不是很明白怎么在任意组件中调用相关api,能不能给个例子啊,谢谢
2020-04-19 11:36
1***@qq.com

1***@qq.com

博主加下qq吧 请教些问题
2020-04-09 11:03
jonychen1

jonychen1

博主写得很好,不多要是用GoEasy可能就更简单了,毕竟用第三方的框架就不用自己搭建了,而且GoEasy提供完整的websocket前后端解决方案,支持多种前后端语言的使用,www.goeasy.io 博主有兴趣可以试一下
2020-01-17 17:47