DCMarvel
DCMarvel
  • 发布:2020-06-08 17:04
  • 更新:2020-06-24 15:01
  • 阅读:1529

【报Bug】Uni-app socket 多页面连接无法触发onSocketMessage

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window 10

HBuilderX类型: 正式

HBuilderX版本号: 2.7.9

手机系统: 全部

手机厂商: 华为

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

Android 9 IOS 12

操作步骤:

页面1

<template>  
    <view class="pages" >  
        <text>页面1--{{socket}}</text>  
        <button type="default" @tap="toPage">转页面2</button>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                socket : false  
            }  
        },  
        onLoad() {  
            uni.connectSocket({  
                url: 'ws://192.168.0.4:7272',  
                success: (res) => {  
                    console.log(res);  
                }  
            });  
            uni.onSocketMessage((res) => {  
                console.log(res);  
                this.socket  = true   
            })  
        },  
        methods: {  
            toPage() {  
                uni.navigateTo({  
                    url: '/pages/index/test2',  
                });  
            }  
        }  
    }  
</script>  

<style>  
</style>  

页面2

<template>  
    <view class="pages" >  
        <text >页面2--{{socket}}</text>  
    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                socket : false  
            }  
        },  
        onLoad() {  
                       // uni.closeSocket() 先关闭 在连接则正常  
            uni.connectSocket({  
                url: 'ws://192.168.0.4:7272',  
                success: (res) => {  
                    console.log(res);  
                }  
            });  
            uni.onSocketMessage((res) => {  
                console.log(res);  
                this.socket  = true  
            })  
        },  
        methods: {  
        }  
    }  
</script>  

<style>  
</style>  

预期结果:

每个连接都能正常触发

实际结果:

再次连接不能触发

bug描述:

多页面连接uni.connectSocket ,第二页连接可以连接成功,触发回调{"errMsg":"connectSocket:ok"} ,但是二页面无法触发uni.onSocketMessage
不过页面二 uni.closeSocket() 先关闭 在连接则正常触发

2020-06-08 17:04 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

明细账

  • DCMarvel (作者)

    我还以为官方回复这么快呢.哈哈

    2020-06-08 17:22

DCloud_uniCloud_WYQ
  • DCMarvel (作者)

    嗯,有时间试试,看文档没发现此api,只看到:App平台,2.2.6+起支持多个socket链接,数量没有限制.

    现已经改成单连接 uni.$on uni.$emit 通讯了

    2020-06-09 13:28

1***@qq.com

1***@qq.com

另一种

该问题目前已经被锁定, 无法添加新回复