我正在使用
Socket.io
在我的项目中。我为我的套接字创建了一个插件。。。
await server.register(socket_connections);
哪里
socket_connections
下面是。。。
const connect = require("./controllers/connect");
module.exports = {
name: "SocketPlugin",
register: connect.socket
};
connect.socket
exports.socket = async (server) => {
const io = require("socket.io")(server.listener);
io.on("connection", socket => {
console.log("Socket Connection");
});
}
我的问题是
io
是在插件内部定义的,不应该是这样。如果它是在插件中定义的,服务器连接将继续重新启动。例如,在我的服务器控制台中,定期打印以下内容。。。
Socket Connection
Socket Connection
Socket Connection
...
我意识到,解决方案是在插件之外定义服务器连接。所以我想定义一下
const io = require("socket.io")(server.listener);
在插件之外,最好在同一个文件中
server.register
这件事能在几分钟内完成吗
Hapi.js
? 这是唯一的方法,我可以使一个正确的插座连接,似乎,否则我必须完全取消插件,这是一个有点辛苦。