在哪里可以找到socket.io 1.0与express 3.0结合使用的工作示例?目前问题是它在我的index.html中找不到/socket.io/socket.io.js.
var express = require('express')
var http = require('http')
var app = express()
app.configure(function () {
app.set('port', process.env.PORT || 80);
});
// setup express server
var serv = http.Server(app);
// setup socket io
var io = require('socket.io')(serv);
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);
});
});
serv.listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
这就是我在index.html中的内容
<!DOCTYPE html>
<html lang="en">
<head>
<title>Socket Example</title>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('/');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
</head>
<body>
<b>Socket IO</b>
</body>
这就是我在package.json中的内容
{
"name": "socketio",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.0",
"socket.io": "LearnBoost/socket.io"
},
"scripts": {
"start": "node app.js"
}
}
最佳答案 您遇到的问题是您决定使用socket.io 1.0未完成的未完成版本.它还没有正式发布(或者它本来是在npm).我建议你坚持使用Socket.IO的“稳定”版本.
如果你想使用Socket.IO 1.0,因为新的engine.io传输系统我建议你看看Primus https://github.com/primus/primus,它包含了socket.io,engine.io,sockjs以及更多的通用接口和插件系统.您可以使用此插件系统通过使用engine.io转换器和一些插件轻松构建您自己的Socket.IO 1.0.这是使用Primus Engine.IO创建Socket.IO的工作克隆的示例https://gist.github.com/3rd-Eden/6113494