Socket.io不起作用

时间:2013-05-28 20:00:19

标签: node.js socket.io

我已将文件更改为如下所示。 javascript控制台什么也没显示,网页什么都没显示。只是一个空白的屏幕。有没有人知道一个使用socket.io的网站。我想检查代码,看看他们是如何做到的,因为socket.io页面上没有一个例子适合我。有人知道iptables文件中是否需要额外的端口吗?

使用Chrome浏览器,如果我转到javascript控制台并转到网络标签,我会获得成功,但最后一个电话显示待处理???它看起来像挂了。这可能是防火墙问题吗?

/socket.io/1/websocket
GET
101
Switching Protocols
Pending
Other
127 B
0 B
Pending

它在第168行的选择器中是Pending:

document.body.appendChild(menuDiv);

也许这就是我没有看到任何东西的原因?它正确地提供了socket.io/socket.io.js

以下文件:

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

app.use(express.static(__dirname + '/public'));

var port = 80;

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);

公共/ index.html中

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

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

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

   var socket = io.connect('http://localhost:80');

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

   socket.on('hello',function(){
       console.log('yay got hello');
   });
</script>

1 个答案:

答案 0 :(得分:1)

您正在使用名称空间newschat,即使您的服务器未正确实现它们。

你的javascript连接应该是这样的:

var socket = io.connect('http://localhost:80');

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

socket.on('hello',function(){
    console.log('yay got hello');
});