Open xzshinan opened 7 years ago
+1
你说的这个是因为 $packet 之前是 json,解析了之后才是数组。你可以看一下具体的代码执行顺序。
不知道是什么的 signature?
[2017-10-29 14:50:23][DEBUG] POST https://ws.qcloud.com/get/wsurl => [200] { "[请求]": { "data": "{\"receiveUrl\":\"https:\/\/vox-api.cn\/tunnel\",\"protocolType\":\"wss\"}", "tcId": "ffff613b6c46f44bfd6a7f04e58396ca", "tcKey": "abc-", "signature": "4f24a372798e8fad5c0ef8583412ac9ac3fd7735" }, "[响应]": { "code": 0, "message": "OK", "data": { "tunnelId": "02ca30d0-740a-4b02-9d74-6f5d7f78f3ec", "connectUrl": "wss:\/\/ws.qcloud.com\/ws\/test?tunnelId=02ca30d0-740a-4b02-9d74-6f5d7f78f3ec" } }, "[耗时]": "73ms" }
这是日志,没有返回signature
这个签名只是用来校验数据的,不是给信道用的。直接连接信道即可。
但是sdk里TunnelService.php82行拿不到会报错[捂脸]
不是的,这个地方是可以拿到的。。
整个流程是这样的:
------- ------------- -----------
| 用户 | -> | 业务服务器 | -> | 信道服务 |
| | <- | | <- | |
------ ------------- -----------
你截图的那个信道服务器不是我们小程序专用的,报错是因为你的 sdk.config 配置错误了。。要把 https://ws.qcloud.com/
修改为 https://tunnul.ws.qcloud.la/
建立连接的时候,业务服务器 请求 信道服务器 https://ws.qcloud.com/get/wsurl
疑问1:信道服务器返回的值 其实是 数组。 TunnelService.php 第101行 进行了json_decode 操作。
疑问2:信道服务器返回的值中没有 signature。