参照socket.io官网上写的代码,浏览器报错。望指教~
发布于 10 年前 作者 gdut-zdc 4906 次浏览 最后一次编辑是 8 年前 来自 问答

这是我参照官网上写的例子 Using with Node http server ,可是node app.js之后,用浏览器 打开http://localhost:3333,发现控制台报错。报错如下图:

//app.js
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(3333);

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.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

//index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

</body>
<script src="/js/socket.io.js"></script>
<script>
    var socket = io('http://localhost:3333');
    socket.on('news', function (data) {
        console.log(data);
        socket.emit('my other event', { my: 'data' });
    });
</script>

QQ截图20140918220155.png

15 回复

你得到的 socket.io.js文件不对。估计是个出错html文件。

<script src="/socket.io/socket.io.js"></script>

@leapon 这个不是路径的问题而已吗,我是把socket.io.js放在了根目录下的js文件夹下的。

@gdut-zdc 你可以用自己的socket.io.js,可是你的文件内容不对:Unexpected token <

你在浏览器里打开 /js/socket.io.js 就知道文件对不对了。

@leapon 好奇怪,像你说的,我使用你给的文件路径,是可以正常运行的。但是我这里并没有socket.io文件夹,它是怎样识别的?

@gdut-zdc 访问这个地址/socket.io/socket.io.js,socket.io会处理这个请求的

@jiangli373 是通过什么来处理的?connect模块吗?那具体是哪个中间件呢

@leapon 刚刚新建了一个程序,使用的是express和socket.io最新版 ,为什么会报错?@jiangli373 app.js app.png index.html index.png 浏览器报错: error.png

@gdut-zdc index.html下面的script试着改成下面的代码 <script> $(function(){ var socket = io.connect(‘http://localhost:3000’); socket.on(‘welcome’,function(data){ console.log(data.txt); }); }) </script>

@jiangli373 这样修改还是不行.

@gdut-zdc 哦,上面看错了,你那个控制台报错是因为没有找到socket.io.js,所以导致io not defined

@jiangli373 是我的路径出了问题吗,不是说这样的路径,socket.io会自动帮我们处理,我在其它的地方这样用是没有问题的呀。

@gdut-zdc 浏览器都报错404了,io当然not defined

@karlsun 我知道报404找不到文件呀, 关键是哪里出错了?

回到顶部