Я использую 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
?Кажется, это единственный способ сделать правильное соединение через сокет, иначе мне придется полностью избавиться от плагина, который немного кропотлив.