3

Eclipse用のGoogleChromeDeveloperToolsプラグインを使用してNode.jsサーバーをデバッグしています。このサーバーは、Webクライアントとサーバー間のWebSocket接続にSocket.ioを使用します。サーバーにブレークポイントを設定し、コードのステップ実行を開始すると、問題が発生します。クライアントは、ハートビートや通信がなくなったため、サーバーがもう存在しないとすぐに判断し、切断します。その間、私がステップスルーしているときに、私のコードはソケットで何かを行おうとしますが、ソケットがシャットダウンされたためにコードが停止します。このようにデバッグしようとすると、少し注意が必要になります。

したがって、問題は、WebSocket接続を開いた状態でこのようなサーバーをデバッグし、接続を閉じないようにするにはどうすればよいかということです。良い解決策があるかどうかはわかりませんが、それを公開して、誰かが天才的なアイデアを持っているかどうかを確認したいと思いました。

4

4 に答える 4

6

少し厄介で石のように聞こえても、この場合(実際にはクライアント->サーバー環境をデバッグします)、私は通常、とのようにサーバー側で標準出力を使用しconsole.log()ますconsole.debug

クライアント側のスクリプトをデバッグする必要がある場合、サーバー接続を失いたくない場合は、同じことを行うことができます。実際、 socket.IOのハートビートのタイムアウトが根本的に高くなるように再構成する以外に、他の方法はありません。

于 2012-10-11T20:03:10.807 に答える
6

さらに調査を行った後、私は希望に満ちたいくつかの異なるプロジェクト、つまり「ノードインスペクター」と「ノードコデイン」を発見しました。ただし、node-inspectorは最新バージョンのnodeでは機能せず、node-codeinには多くのバグがあります。また、どちらも実際には維持されておらず、どちらもChromeでのみ機能します。そこで、 Node Monkeyという独自のソリューションを作成しました。これは非常に使いやすく、FirefoxまたはChromeで動作します。Nodeアプリのコンソールに記録されたものをキャプチャし、その出力をブラウザコンソールにリダイレクトするだけです。次のコマンドを実行してインストールできます。

npm install node-monkey
于 2012-10-17T17:27:18.843 に答える
2

これはかなり後のことですが、socket.ioの健全性チェックをすばやく行うのに最適であることがわかったもう1つのオプションは、socket-io-testerです。

この答えはグーグルでの最初の結果であり、ツールを見つけるのにもう少し掘り下げたので、ここでそれについて言及します。

于 2018-02-11T22:37:40.993 に答える
0

このためには、socket.ioの公式ドキュメントに従うことができます

https://socket.io/docs/v3/logging-and-debugging/index.html

私の場合、package.jsonでこれを行いました

"scripts": {
 "test": "echo \"Error: no test specified\" && exit 1",
 "start": "DEBUG=engine,socket.io* nodemon src/server.js"},

お役に立てば幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2021-03-25T05:03:51.540 に答える