node socket.io set/get方法

来源:互联网 发布:网络市场中间商的类型 编辑:程序博客网 时间:2024/06/08 04:52

不知道从socket.io库的第几个版本开始起,在socket端口对象中用于在服务器端保存用户数据的set与get便被抛弃不用了,原来这两个方法的用法是

socket.set(name,data,[callback]

name参数值为一个字符串,用于指定被保存数据的键名
data参数值可以为一个字符串或者对象,用于指定被保存的数据
callback用于指定保存数据结束时调用的回调函数,不使用任何参数

socket.get(name,callback)

name指定需要获取的数据键名
callback获取结束时的回调函数,function(err,data){}

这两个方法保存的数据在用户当前会话期间有效,当页面刷新或者浏览器关闭之后就失效了,但现在这两个方法都不能使用,我们可以采用socket.name的方式替代

var http=require("http");var express=require("express");var serveStatic=require('serve-static');var sio=require("socket.io");var app=express();app.set("views","./");app.set("view engine","pug");app.use(serveStatic(__dirname));var server=http.createServer(app);app.get("/",function(req,res){    res.render("index");});server.listen(1337);var socket=sio.listen(server);socket.on("connection",function(socket){    socket.emit("news",{hello:"yourName"});    socket.on("other",function(data){        if(data.myName){            console.log("服务器收到消息:"+data.myName);            socket.name=data.myName;        }else{            console.log("服务器收到消息:"+data.data);        }    });    socket.on("othera",function(data){        console.log("收到新消息:"+data.data);    });    socket.on("otherb",function(data){        console.log("收到新消息:"+data.data);    });    setTimeout(function(){        socket.emit("news",{hello:socket.name});    },3000);});
原创粉丝点击