0

Socket.io を機能させようとしています。私のコードは以下です。「Socket.io へようこそ」というメッセージが表示されます。私が訪問するとき

http://localhost/index.html 

しかし、それは私が得るすべてです。app.js はメッセージを送り返すように見えますが、Javascript コンソールには何も表示されず、「Socket.io へようこそ」以外のページにも何も表示されません。訪ねてみました

http://localhost/chat

http://localhost/news 

そして同じ結果です。Socket.io を使用して双方向通信をテストしたいと考えています。このスクリプトは私のためにそれを行い、ファイアウォールが返信メッセージをブロックしている可能性があります。これは Socket.ip V0.9 ページの例です。

// app.js
var io = require('socket.io').listen(80);

var chat = io
   .of('/chat')
   .on('connection', function (socket) {
       socket.emit('a message', {
          that: 'only',
         '/chat': 'will get'
    });
    chat.emit('a message', {
    everyone: 'in'
  , '/chat': 'will get'
  });
});

var news = io
  .of('/news')
  .on('connection', function (socket) {
  socket.emit('item', { news: 'item' });
});

index.html

//index.html
<script>
var chat = io.connect('http://localhost/chat')
  , news = io.connect('http://localhost/news');

chat.on('connect', function () {
  chat.emit('hi!');
});

news.on('news', function () {
  news.emit('woot');
});
</script>
4

1 に答える 1

0
Oh. Interesting. It does not look like you have a server even running, just io.

//app.js
var app = express();
var http = require('http');
var server = http.createServer(app);

app.use(express.static(__dirname + '/public'));
/* place index.html in /public */
var port = process.env.PORT || 5050;

var io = require('socket.io').listen(server, {
  log : false
});
io.sockets.on('connection', function(socket) {
socket.on('hi', function(data) {
console.log('yay');
socket.emit('hello');
});
});
server.listen(port);

//for index.html do the same.

chat.on('connect', function () {
  chat.emit('hi');
});
chat.on('hello',function(){
console.log('yay got hello');
}):

// stackoverflow を始めたばかりです。説明するのはそれほど得意ではありません。簡単なので、ここではエクスプレスを使用しています。これが機能しない場合は、使用している node、express、socket.io のバージョンを教えてください。また、socket.io にはまだ名前空間を使用していないため、これが問題になる可能性があります。

于 2013-05-28T16:29:57.970 に答える