socket.io session 应用

来源:互联网 发布:java并发编程之多线程 编辑:程序博客网 时间:2024/05/16 17:30

服务端:

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>


输出:


0 0
原创粉丝点击