我在哪里可以find一个socket.io 1.0的工作示例?

我在哪里可以find一个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)。 我build议你坚持Socket.IO的“稳定”版本。

如果你想使用Socket.IO 1.0,因为新的engine.io传输系统,我build议你看看Primus https://github.com/primus/primus ,它包装了socket.io,engine.io,sockjs等等一个通用的界面和一个插件系统。 您可以使用这个插件系统,通过使用engine.io变压器和一些插件来轻松构build您自己的Socket.IO 1.0。 以下是使用Primus + Engine.IO创buildSocket.IO 工作副本的示例https://gist.github.com/3rd-Eden/6113494

您需要将连接/快递应用程序包装在节点http.Server中。

app.listen()方法是一个方便的方法,并返回服务器:

 var io = require('socket.io'); var app = connect(); var server = app.listen(80); io.listen(server); 

或者以下是等价的:

 var io = require('socket.io'); var http = require('http'); var app = connect(); var server = http.createServer(app); server.listen(80); io.listen(server); 

Connect 2 / Express 3可以在不启动http.server的情况下创build应用程序,因此您应该将其组织起来或发出。 这应该让你回到正轨,如果没有其他select。

 // where this = express(); this.server = this.listen(this.config.port); console.log('[ ' + this.constants.name + ' ] worker listening on port ' + this.config.port); this.emit('listen', this.server); 

对于使用server.io和Node: REF的 express 3

 var app = require('express')() , server = require('http').createServer(app) , io = require('socket.io').listen(server); 

你可以检查这个有完整的socket.io v1.0实现的仓库。 虽然是用express4.0。

https://github.com/theoctal/livenote