为什么phoenix.js不会在js中创建websocket类的实例?

时间:2018-01-15 19:09:10

标签: websocket phoenix-framework

我正在查看phoenix,phoenix.js文件中使用的客户端。

为什么我看不到对代码的引用,如:

var ws = new WebSocket("...");

是否必须创建一个websocket类?

我看到的唯一参考是: https://github.com/phoenixframework/phoenix/blob/662d5630026ea523a62f7d1e35912ca461397ddc/priv/static/phoenix.js#L226

我只是想了解它是如何根据WebSocket类创建客户端的:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications

希望有人可以澄清phoenix.js如何创建websocket连接,我假设它也是跨浏览器的。

1 个答案:

答案 0 :(得分:2)

它确实创建了一个WebSocket实例。在line 895中,您会看到WebSocket存储在this.transport中,如果WebSocket不存在,则会回退到LongPoll

this.transport = opts.transport || global.WebSocket || LongPoll;

稍后在line 994,有new this.transport(...)的电话:

this.conn = new this.transport(this.endPointURL());