繁体   English   中英

页面重新加载后Websocket ruby​​应用程序崩溃

[英]Websocket ruby app crashes after page reload

我有一个Sinatra应用程序,该应用程序将websockets与sinatra-websocket gem一起使用。 其目的是使用Watir将数据发送到其他网站上的表单。 我使用websockets允许我的用户插入capthcas和短信确认代码而不会丢失Watir会话。

因此,用户转到此页面https://secret-gorge-5083.herokuapp.com ,填写表格,按红色按钮,然后将其重定向到此页面https://secret-gorge-5083.herokuapp.com/ send_out ,他们可以通过按红色按钮来决定其数据应进入哪些网站。

但是,如果用户重新加载最后一页,它将首先加载所有外部文件(在js控制台中带有net::ERR_CONNECTION_REFUSED消息),并且如果您再次重新启动它,则会使用/home/username/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/connection.rb:266:in 'close_connection': eventmachine not initialized: evma_close_connection (RuntimeError)使应用程序崩溃/home/username/.rvm/gems/ruby-2.1.2/gems/eventmachine-1.0.3/lib/em/connection.rb:266:in 'close_connection': eventmachine not initialized: evma_close_connection (RuntimeError)日志。

我猜事件机器没有被初始化,因为初始化它的js文件在第一次重载(连接被拒绝)后没有被装载。

这是我在github上的代码: https : //github.com/lakesare/credits/

为什么拒绝连接? 如何处理我的应用严重崩溃?

在我的credits.rb文件中,我有以下行:

  connection.onclose do
    warn("websocket closed from credits.rb")
    settings.sockets.delete(ws)
  end

而且我没有ws变量-我将其重命名为connection ,却没有注意到这一点。 因此,每次关闭websocket连接时,都会遇到无法识别的变量-从而导致应用崩溃。 我将ws更改为connection并且现在可以在重新加载时正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM