Как заставить socket.io прослушивать только один конкретный маршрут? - PullRequest
0 голосов
/ 06 июня 2018

Я только хочу, чтобы socket.io прослушивал мой / домашний маршрут, но, кажется, он прослушивает каждый маршрут?Есть ли способ получить его только для прослушивания моего / домашнего маршрута?Это то, что у меня есть:

const server = require('http').Server(app);
const io = require('socket.io')(server);

io.on('connection', function(socket){
  console.log('a user connected');
});

Это то, что я пробовал, но это просто отображает файл JSON на домашнем пути

const io = require('socket.io')(3000, {
  path: '/home',
  serveClient: true,
  // below are engine.IO options
  pingInterval: 10000,
  pingTimeout: 5000,
  cookie: false
});

1 Ответ

0 голосов
/ 06 июня 2018

Я только хочу, чтобы socket.io прослушивал мой / домашний маршрут, но, кажется, он прослушивает каждый маршрут?Есть ли способ заставить его слушать только мой / домашний маршрут?

Клиентский Javascript либо подключается к серверу socket.io, либо нет - это двоичный файл.Там нет смысла для нескольких маршрутов, как с HTTP-запросов.socket.io поддерживает подключение и прослушивание определенного пространства имен, если вы хотите использовать несколько отдельных «каналов» подключения для нескольких подключений.

Хорошо, так что он просто прослушивает все на сайте, когда сайт загружается?Как я могу изменить вещи только на одной из моих страниц, если она прослушивает весь сайт?Или это не тормозит?

Сервер socket.io просто прослушивает входящие соединения.Он не связан с маршрутом.

Чтобы подключить только некоторые из ваших страниц к socket.io, либо вы используете другой Javascript на некоторых своих страницах, либо ваш общий Javascript проверяет путь страницы иподключаться только к socket.io только для определенных путей к страницам.

Например, вы можете иметь это на своей веб-странице. Javascript:

var socket;
if (window.location.pathname === "/home") {
     socket = io();
     socket.on(...);
}

Это позволит использовать ваш общий Javascript (который присутствует вмного страниц), чтобы создать соединение socket.io только на вашей странице /home.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...