didi/Hummer

WebSocket.onopen 方法在 iOS 不生效

ddiu8081 opened this issue · 1 comments

描述

前端参考 Hummer Websocket 文档示例代码,建立 Websocket 连接成功,send 方法可用,但 onOpen 方法始终无法收到回调。

Hummer version:

master branch

复现步骤

  1. 按样例代码连接 WS 服务器
  2. onopen 方法无法触发

预期结果

正常打印出 WebSocket onOpen 信息。

样例代码、屏幕截图或者仓库链接

const ws = new WebSocket('ws://x.x.x.x:8000');
ws.onopen = () => {
    console.log('WebSocket onOpen'); 
}

调试 iOS Hummer 代码发现,(void)webSocketDidOpen:(SRWebSocket *)webSocket 方法中只是执行了连接本身的一些操作,并没有去调用 self.onOpen

ScreenShot 2023-02-14 at 17 58 14

调试加上如下代码可解决:

self.onOpen ? self.onOpen(@[@{}]) : nil;