node socket.io set/get方法

不知道从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);
});
要实现nginx配置node socket.io vue的负载均衡,需要先安装nginx和node.js以及socket.io。 以下是简单的步骤: 1. 安装nginx 使用以下命令安装nginx: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 配置nginx 在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 socketio.conf,将以下内容粘贴到文件中: ``` upstream socketio_backend { ip_hash; server node1:3000; server node2:3000; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://socketio_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 这个配置文件设置了一个名为 socketio_backend 的负载均衡器,它将请求转发到两个不同的Node.js服务器,分别是 node1 和 node2,它们都运行在3000端口上。 3. 安装Node.js和socket.ionode1 和 node2 服务器上安装 Node.js 和 socket.io,使用以下命令: ``` sudo apt-get update sudo apt-get install nodejs sudo apt-get install npm sudo npm install socket.io ``` 4.Node.js中使用socket.ioNode.js 应用程序中使用以下代码启动 socket.io: ``` var io = require('socket.io')(3000); io.on('connection', function (socket) { console.log('a user connected'); }); ``` 这段代码启动了一个 socket.io 实例,并监听在3000端口上,当有一个新的客户端连接时,会在控制台输出“a user connected”。 在Vue.js中使用socket.io 在Vue.js应用程序中使用以下代码连接到socket.io: ``` import io from 'socket.io-client'; const socket = io('http://yourdomain.com'); ``` 这段代码连接到运行在yourdomain.com的socket.io服务器。 至此,你就可以在Vue.js应用程序中使用socket.io了,并且通过nginx实现了负载均衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值