1

だから私はnodejsとsocket.ioで新しいプロジェクトを設定しようとしていました

最初に、このサイトの自宅の PC でこれらのコードを試します: http://socket.io/#how-to-use

最初の例を試してみたところ、うまく機能したので、自宅の PC で作業を続けました。

しかし、仕事用のPCで試してみると、仕事がうまくいきません。
Web の最初の例でさえ機能しません。
クライアントは、発行された「ニュース」イベントをサーバーから受信せず
、クライアントは「my other event」をサーバーに発行しません。
クライアントブラウザにエラーはなく、使用しているすべてのブラウザですでに試しています(Firefox、つまり、Chromeはすべて最新バージョンです)

クライアントがイベントをサーバーに発行せず、クライアントがサーバーから発行されたデータを受信できないのはなぜですか?

何が問題ですか?それは私の職場のコンピューターですか?私はすでに3つの異なるコンピューターで試しましたが、結果は同じです。自宅のPCでのみ動作します。私の職場のコンピューター(win7 x86)では、すでにUACとファイアウォールを無効にしています。

私はnodejs v0.10.1、socket.io v0.9.13を使用しています

これは、socket.io の例からコピーしたコードです:
client.html

<script src="./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>

<script>
  var socket = io.connect('http://localhost:8999');

  setTimeout(function(){
    socket.emit('my other event', { my: 'emitted by timeout' }); // nothing happened at server
  },3000);

  socket.on('news', function (data) {
    console.log(data); // this won't fire
    socket.emit('my other event', { my: 'data' }); // this won't fire
  });
</script>

サーバー.js

var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)
  , fs = require('fs')

app.listen(8999);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

ノードコンソールからの出力:

   info  - socket.io started
   debug - client authorized
   info  - handshake authorized c3Y6q0EnyWtldKBKnUHp
   debug - setting request GET /socket.io/1/websocket/c3Y6q0EnyWtldKBKnUHp
   debug - set heartbeat interval for client c3Y6q0EnyWtldKBKnUHp
   debug - client authorized for
   debug - websocket writing 1::
   debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
4

0 に答える 0