服务端:
var http = require("http");
var util = require("util");
var fs = require("fs");
var path = require("path");
var express = require("express");
var io = require("socket.io");
var SessionSockets = require('session.socket.io');
var secret = "my secret",key = "connect.id";
var cookieParser = express.cookieParser(secret);
var sessionStore = new express.session.MemoryStore({
reapInterval:20*60*1000
});
var app = express();
app.use(cookieParser);
app.use(express.bodyParser());
app.use(express.session({secret: secret,store : sessionStore, key:key }));
app.use(app.router);
app.use(express.methodOverride());
app.get("/:uid",function(req,res){
var session = req.session;
var uid = req.param("uid");
console.log("uid:",uid);
session.uid = uid;
process.nextTick(function(){
session.save();
});
fs.readFile(path.join(__dirname,"socket.html"),"utf8",function(err,data){
if (err) {
res.end(err);
}else{
res.end(data);
}
});
});
var server = http.createServer(app);
var socket = io.listen(server);
var sessionSockets = new SessionSockets(socket, sessionStore, cookieParser,key);
sessionSockets.on("connection",function(err,client,session){
console.log("current session : %s",util.inspect(session));
});
server.listen(3000);
客户端:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>socket.io</title>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script src="https://cdn.socket.io/socket.io-1.0.6.js" type="text/javascript"></script>
</head>
<body>
<ul id="message"></ul>
<script type="text/javascript">
var room , socket;
var message = $("#message");
socket = new io.connect("http://localhost:3000/");
socket.on("connect",function(){
var s = this;
message.append("<li>socket is connected.</li>");
});
socket.connect();
</script>
<img src="http://3.web.qstatic.com/webqqpic/style/wallpaper/blue_glow.jpg" style="position:absolute; top:0;left:0; height:100%;width:100%; z-index:-10;" />
</body>
</html>
输出: