我只想让socket.io在我的/home路径上监听,但它似乎在每条路径上都在监听?有没有办法让它只听我的/home路线?这就是我所拥有的:
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
});发布于 2018-06-06 02:26:08
我只想让socket.io在我的/home路径上监听,但它似乎在每条路径上都在监听?有没有办法让它只听我的/home路线?
客户端的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连接。
https://stackoverflow.com/questions/50711302
复制相似问题