socket.io session 应用

服务端:

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>


输出:


猜你喜欢

转载自blog.csdn.net/zhang_7150/article/details/38228075