启动时丢失连接"/>
[socket io客户端在服务器重新启动时丢失连接
因此,我正在为使用我的服务的成员创建一个模块(cloudlist.xyz)。
基本上,我们的服务中有一个投票系统,该模块正在使用服务器上的套接字io和模块上的套接字io客户端建立连接,并在有人对其进行投票时向用户宣布]]
一切正常,但是当我重新启动服务器以进行一些维护时,即使服务器再次打开,所有用户都已从套接字io断开连接
服务器端代码:
var server = app.listen(process.env.PORT || 3000, () => { console.log("Your app is listening on port " + server.address().port) }); var io = require('socket.io')(server) io.on("connection",function(socket) { console.log("Someone Joined to our server api!") }) //that's the part that he emits the event when someone votes io.of(`vote/${bot}`).emit("voted", user_votes.val());
模块/客户端:
var https = require('https'); const { EventEmitter } = require("events"); var fetch = require('node-fetch') const io = require("socket.io-client"); module.exports = class Cloud_client extends EventEmitter { constructor(id, token) { super(); if (!id) throw new Error("Missing client instance on contructor"); if (!token) throw new Error("Missing token on constructor"); this.id = id; this.token = token; this.socket = io.connect(`/vote/${id}`, { reconnect:true, autoConnect:true, reconnectionDelay: 1000, reconnectionDelayMax : 5000, reconnectionAttempts: Infinity }); this.socket.on("connect", () => this.emit("connected")); this.socket.on("disconnect", (...args) => {this.socket.open(); }); this.socket.on("voted", (...args) => this.emit("voted", ...args)); };
这是某人使用该模块的示例:
var cdl = require("cloud-list") var cloud_client = new cdl("701456902160121966","5669556617e2a070ada1688") cloud_client.on("connected", (data) => { console.log(`Connected to the api Server`) }) cloud_client.on("voted", (data) => { console.log(`Thanks,user ${data.user_name} for voting on us :)`) })
[当我连接到服务器时,它会发送此示例的消息,提示“已连接到api服务器”,但是当我重新启动服务器时,我什么也没收到。已经尝试过
this.socket.on("disconnect", (...args) => {this.socket.open()});
或this.socket.on("disconnect", (...args) => {this.socket.connect()});
,但还是一样,用户无法再次连接。用户再次连接的唯一方法是重新启动他的项目,这很糟糕
因此,我正在为使用我的服务的成员创建一个模块(cloudlist.xyz)。基本上,我们的服务中有一个投票系统,该模块正在使用...
回答如下:套接字连接需要服务器进行服务。除非您希望它是实时的,否则Socket.io似乎不适用于投票系统。服务器重新启动后,客户端有望重新启动。
更多推荐
[socket io客户端在服务器重新启动时丢失连接
发布评论