6

node.jsを使用してexpressとsocket.ioでこのWebアプリを作成しました。アプリはlocalhostで見事に動作しますが、ec2サーバーにプッシュすると、20秒ほど接続してから切断し、再度接続します...

ノードコンソールに次のようなエラーが表示されます

warn  - websocket connection invalid
info  - transport end

サーバ

app = express()
server = http.createServer(app)
io = require('socket.io').listen(server)

クライアント

socket = io.connect()

localhost で Web アプリを完全にテストしたので、問題はコードにあるのではないことはわかっています。唯一の問題は、このコードが実行されている場所です。これは私の ec2 インスタンスですか?

4

4 に答える 4

1

接続が失われるまでの 20 秒間にアクティビティがない場合は、キープアライブの設定が低すぎる可能性があります。

同様の問題については、https://groups.google.com/forum/?fromgroups=#!topic/socket_io/RUv70BguZ-Uを参照してください。そこでの解決策は、ハートビートを使用して接続を開いたままにすることでした。

まだ使用していない場合は、socket.io ハートビートの詳細: socketio ハートビートを使用する利点/欠点

于 2013-04-29T17:12:32.037 に答える