- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只想让 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
});
最佳答案
I'm only wanting socket.io to listen on my /home route but it seems to be listening on every route? Is there a way to get it only to listen to my /home route?
客户端的 Javascript 要么连接到 socket.io 服务器,要么不连接 - 它是二进制的。与 http 请求一样,多个路由是没有用的。如果您想要多个连接的多个单独的连接“ channel ”,socket.io 支持连接和监听特定 namespace 。
Ok so it just listens to everything on the site when the site is loaded? How do I only change things on one of my pages if it is listening to the whole site? Or does that not slow things down?
socket.io 服务器仅监听传入连接。它与路线无关。
要仅将部分页面连接到 socket.io,您可以在某些页面中使用不同的 Javascript,或者让通用 Javascript 检查页面的路径,并且仅针对特定页面路径连接到 socket.io。
例如,您可以在网页 Javascript 中包含以下内容:
var socket;
if (window.location.pathname === "/home") {
socket = io();
socket.on(...);
}
这将允许您的通用 Javascript(存在于许多页面中)仅在您的 /home
页面中创建 socket.io 连接。
关于javascript - 如何让socket.io只监听一个特定的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50711302/
我是一名优秀的程序员,十分优秀!