我对socket.io示例有问题。我的浏览器无法获取socket.io.js文件(控制台中出现404错误)。浏览器无法使用快递获取socket.io.js文件
该工作代码:
server.js
var app = require('express').createServer()
, io = require('socket.io').listen(81);
app.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
的index.html
<script src="http://192.168.1.104:81/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://192.168.1.104:81');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
但是这一次没有:
server.js
var app = require('express').createServer()
, io = require('socket.io').listen(app);
app.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
的index.html
<script src="http://192.168.1.104:80/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://192.168.1.104:80');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
在这种情况下,我的浏览器不能得到socket.io.js文件。
好了,现在的浏览器可以得到socket.io.js,但有是下一个错误,行“var client = require('socket.io-client');”在socket.io.js中:未捕获的ReferenceError:require未定义。 – 2012-04-17 08:54:23
我错了,很抱歉有误导性。我更新了我的答案。 – 2012-04-17 09:19:04
当我将
什么快递版本您使用的是?
的API已经从快递2.X改变到3.x,所以答案是Socket.IO兼容性部分在Migrating from 2.x to 3.x维基:
Socket.IO的
.listen()
方法采用http.Server
实例作为论据。从3.x起,
express()
的返回值不是http.Server
实例。若要Socket.IO与快递3.X工作,请确保您手动创建和你http.Server
实例传递给Socket.IO的.listen()
方法:来源
2013-01-19 18:07:49