【发布时间】:2021-10-11 06:56:16
【问题描述】:
我正在使用浏览器的控制台,我想获取所有活动选项卡的所有详细信息。我正在做的是打开浏览器的控制台并输入:
但这给了我以下错误:
VM713:1 Uncaught TypeError: Cannot read property 'query' of undefined
at <anonymous>:1:13
谢谢
编辑:
var http = require("http"),
io = require("socket.io"),
fs = require("fs"),
util = require("util");
var backlog_size = 2000;
var filename = process.argv[2];
if (!filename) return util.puts("Usage: node <server.js> <filename>");
var linesCount = 0;
// -- Node.js HTTP Server ----------------------------------------------------------
server = http.createServer(function (req, res) {
console.log(req.url)
filePath = req.url
if(filePath=="/"){
filePath='./index.html'
fs.readFile(filePath, function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading ' + filePath);
}
res.writeHead(200);
res.end(data);
});
}
else
{
if(filePath=="/client"){
filePath = './client.html';
fs.readFile(filePath, function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading ' + filePath);
}
res.writeHead(200);
res.end(data);
});
}}
});
server.listen(8000, "0.0.0.0");
var fsTimeout
var textToSend=""
// -- Setup Socket.IO ---------------------------------------------------------
var socket = io(server, {
cors: {
origin: "*",
},
});
socket.on("connection", function (client) {
fs.watchFile(filename, function (curr, prev) {
console.log("file changed");
// if (prev.size > curr.size) return { clear: true };
// var stream = fs.createReadStream(filename, {
// start: prev.size,
// end: curr.size,
// });
// stream.on("data", function (lines) {
// console.log(lines.toString());
// linesCount += count;
// console.log(linesCount);
// client.emit("tail", { lines: lines.toString("utf-8").split("\n") });
// });
if (prev.size > curr.size) return { clear: true };
if(!fsTimeout){
if(prev.ctime.getTime() != curr.ctime.getTime())
{
console.log("file changed")
var stream = fs.createReadStream(filename, {
start: prev.size,
end: curr.size,
});
stream.on("data", function (lines) {
console.log(lines.toString());
textToSend+=lines.toString();
textlen=textToSend.split("\n").length;
// count=lines.toString().split("\n").length
// linesCount += count;
// console.log(linesCount);
console.log(textlen)
if(textlen<10)
{
console.log("me")
socket.emit("tail", { lines: lines.toString("utf-8").split("\n") });}
else
{
console.log("client")
socket.emit("room", { lines: textToSend.toString("utf-8").split("\n") }); };
});
}
fsTimeout = setTimeout(function() { fsTimeout=null }, 5000)}
}
);
});
这是我使用的编辑代码并使用 socket.io 使其工作 1
我正在开发一个 node.js 应用程序,我正在使用 socket.io 向多个客户端发送数据,但套接字只能向一个客户端发送数据,即如果我在两个选项卡中打开我的网页,它无法正常工作两个选项卡,但是当我只打开 1 个网页选项卡时,它能够传输数据。我不知道为什么?有人可以帮忙吗,这是我的代码:
server.js
【问题讨论】:
标签: javascript node.js google-chrome console