CNode

参照socket.io官网上写的代码,浏览器报错。望指教~

问答
Ggdut-zdc发布于12 年前最后回复12 年前15 回复5360 浏览0 收藏

这是我参照官网上写的例子 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)

L
leapon#1·12 年前

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

L
leapon#2·12 年前
<script src="/socket.io/socket.io.js"></script>
G
gdut-zdc#3·12 年前

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

L
leapon#4·12 年前
引用 gdut-zdc@leapon 这个不是路径的问题而已吗,我是把socket.io.js放在了根目录下的js文件夹下的。

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

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

G
gdut-zdc#5·12 年前

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

G
gdut-zdc#7·12 年前

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

G
gdut-zdc#8·12 年前

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

J
jiangli373#9·12 年前
引用 gdut-zdc@leapon 刚刚新建了一个程序,使用的是express和socket.io最新版 ,为什么会报错?@jiangli373 app.js index.html 浏览器报错:

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

G
gdut-zdc#11·12 年前

@jiangli373 这样修改还是不行.

J
jiangli373#12·12 年前
引用 gdut-zdc@jiangli373 这样修改还是不行.

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

G
gdut-zdc#13·12 年前

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

G
gdut-zdc#15·12 年前

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

参与回复
登录后即可参与回复。登录