一只小帕吉
一只小帕吉
  • 发布:2021-05-27 11:17
  • 更新:2021-05-28 12:57
  • 阅读:461

【报Bug】使用SocketTask,关闭页面并断开连接时,IOS会延迟5秒才关闭,安卓正常

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 3.1.13

手机系统: iOS

手机系统版本号: IOS 14

手机厂商: 苹果

手机机型: IPhone 8 PLUS

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

使用SocketTask,关闭页面并断开连接时,IOS会延迟5秒才关闭(当时页面已关闭),安卓正常的。 如果在这5秒内再次进入页面的话,会出现2个连接。

操作步骤:

日志:5秒左右的延迟
11:10:59.392 退出 at pages/test/test.vue:20
11:11:05.431 WebSocket Closed! at pages/test/test.vue:40 __ERROR

<template>  
    <view>  

    </view>  

</template>  

<script>  
    var socketTask;  
    export default {  
        data() {  
            return {  

            }  
        },  
        onLoad() {  
            this.connect();  
        },  
        onBackPress(event) {  
            console.log('退出')  

            socketTask.close();  

        },  
        methods: {  
            connect() {  
                socketTask = uni.connectSocket({  
                    url: 'ws://XXXXXX',  
                    complete: () => {}  
                });  
                socketTask.onOpen(function(res) {  
                    console.log('WebSocket Connected!');  
                });  
                socketTask.onError(function(res) {  
                    console.error('WebSocket Connection Failed!');  
                });  
                socketTask.onClose(function(res) {  
                    console.error('WebSocket Closed!');  
                });  
                socketTask.onMessage(function(res) {  
                    console.log('收到服务器内容:' + res.data);  
                });  
            },  

        }  
    }  
</script>  

<style>  

</style>  

预期结果:

socketTask.close();后立即断开连接

实际结果:

日志:5秒左右的延迟
11:10:59.392 退出 at pages/test/test.vue:20
11:11:05.431 WebSocket Closed! at pages/test/test.vue:40 __ERROR

bug描述:

2021-05-27 11:17 负责人:DCloud_iOS_XHY 分享
已邀请:
9***@qq.com

9***@qq.com

ws://123.207.136.134:9010/ajaxchattest

12:51:46.384 WebSocket Connected! at pages/index/socketTest.vue:36
12:51:51.392 退出 at pages/index/socketTest.vue:24
12:51:51.413 WebSocket Closed! at pages/index/socketTest.vue:42 __ERROR

我使用的测试地址不会有延时的现象,是否跟服务端通信测略有关

  • 一只小帕吉 (作者)

    目前我用第三方客户端工具,测试时也能立即断开。 就IOS是这样,请问需要做什么特殊处理吗?这个问题搞的很头疼

    2021-05-28 15:29

  • 9***@qq.com

    回复 一只小帕吉: 我这个就是用IOS设备测试的

    2021-05-28 15:33

  • 9***@qq.com

    换一个websocket地址试试?

    2021-05-28 15:34

  • 一只小帕吉 (作者)

    回复 9***@qq.com: 换了个服务端正常了。。。。但是安卓就很正常,有点莫名其妙,我再查下看看,谢谢!

    2021-05-28 15:41

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