tencentyun / wafer2-node-sdk

Wafer2 SDK for Node.js
Other
268 stars 59 forks source link

关于多URL-信道的BUG #54

Closed shasharoman closed 5 years ago

shasharoman commented 5 years ago

某种场景,我希望在一个工程里面使用两个不同的信道URL做不同业务,发现有BUG。

假设:

然后在分别在对应的GET方法中使用tunnel.getTunnelUrl(ctx.req)返回信道的连接URL,但客户端连接后通信会出现消息错乱,比如发给学生的消息出现在老师的处理逻辑中,原因是lib/tunnel/service.js中的receiveUrl方法中做了一个Cache,导致两个业务GET方法中的getTunnelUrl传给信道服务器的receiverUrl是同一个。

如果真有这种场景,可以修改lib/tunnel/service.js,删除缓存的逻辑:

function receiveUrl (pathname) {
        const protocol = url.parse(config.tunnelServerUrl).protocol
        const hostname = config.serverHost
        const port = config.serverPort // 配置端口号,undefined则无效果
        return url.format({ protocol, hostname, port, pathname })
}
jas0ncn commented 5 years ago

稍后修复,也欢迎 PR!