0

クライアントでこれを使用しています

<script type="text/javascript" src="http://domain.com:8440/socket.io/socket.io.js"></script>

サーバーがビジー状態の場合、クライアントで「io not defined」エラーが発生することがあります。どうすればこれを解決できますか?

これが私のサーバーコードです

var db_helper = require("./db.js");
var io=require('socket.io').listen(8440);
var check = require('validator').check,
    sanitize = require('validator').sanitize;
var roomid=0;
var anonid;
var ilet;
var userip;
var blck_id;

  io.set('transports', [

  , 'xhr-polling'
  , 'websocket'
  , 'jsonp-polling'
  ]);

サーバーには 16 GB の RAM と 13.6 GHz の CPU が搭載されています。

4

3 に答える 3

3

Cluster などを使用してさらに実行する場合を除き、node.js アプリは単一のスレッドで実行されることに注意してください。つまり、ブロックするようなことをしている場合、 http://domain.com:8440/socket.io/ socket.io.jsへのリクエストがタイムアウトする可能性があり、io が定義されていないというエラーが発生する可能性があります。これが発生した場合は、コンソール ログにも 404 エラーが表示されるはずです。

于 2013-08-13T07:57:31.623 に答える
1

これを試して、

クライアント側の socketio ライブラリを取得し、それを js ファイルが提供されるフォルダーに配置します。スクリプトの場所をこのファイルの場所にポイントします。

クライアント側のスクリプトはこちら

 <server node_moudules>\socket.io\node_modules\socket.io-client\dist\socket.io.js

そもそも、@Timothy が指摘するように、ノードがビジー状態になっている理由を調べてみてください。

于 2013-08-13T08:02:35.547 に答える