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。不太擅长解释。我在这里使用 express 是因为它更简单。如果这不起作用,请告诉我您使用的是什么版本的 node、express 和 socket.io。另外,我还没有为 socket.io 使用命名空间,所以这可能是个问题。

于 2013-05-28T16:29:57.970 回答