Javascript:Phoenix频道立即进入错误状态
在我的webapp中,我用Javascript连接到凤凰频道Javascript:Phoenix频道立即进入错误状态,javascript,phoenix-framework,Javascript,Phoenix Framework,在我的webapp中,我用Javascript连接到凤凰频道 this._channel = socket.channel("user:" + username, {password: password}) this._channel.join() .receive("ok", this._handleLoginSuccess.bind(this)) .receive("error", this._handleLoginFailure.bind(this)) .after(1
this._channel = socket.channel("user:" + username, {password: password})
this._channel.join()
.receive("ok", this._handleLoginSuccess.bind(this))
.receive("error", this._handleLoginFailure.bind(this))
.after(10000, () => console.log("Networking issue. Still waiting..."))
服务器成功地处理了join
,并且正确地调用了\u handleLoginsAccess
回调。但是,当启动JS调试器并查看此通道时,一旦调用回调,它就已经处于“errored”状态,我也无法向它推送任何消息。但是我也看到,joinedOnce
被设置为true,所以那里肯定出了很大的问题
由于服务器端没有报告任何错误,我想知道发生了什么。有什么想法吗?我发现了问题:它与实时重新加载机制有关,不知何故导致websocket一直被终止并重新建立。在通过评论下面的行禁用实时重新加载后,我的常规频道再次正常工作
#if code_reloading? do
# socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
# plug Phoenix.LiveReloader
# plug Phoenix.CodeReloader
#end
我想我也有同样的问题,这也解决了。尽管更好地理解什么不起作用会更好。如果我学到什么,我会回来报到的。