我希望我的node.js服务器从页面加载时的.json文件发送一些数据,但我不断收到ReferenceError: socket is not defined
。是否应该使用这样的套接字?
我有以下代码:
var express = require('express');
var app = express();
var http = require("http");
var server = require("http").createServer(app);
var path = require('path');
var io = require('socket.io').listen(server);
var cheerio = require('cheerio');
var moment = require('moment');
var request = require('request');
var fs = require('fs');
server.listen(80);
console.log("Server is running!")
app.use('/static', express.static(path.join(__dirname, 'public')));
//app.use('/images', express.static(__dirname + '/publick'));
app.get('/', function (req, res) {
let lastLogs = readFile('public/data/logs.json');
res.sendfile('public/index.html');
socket.broadcast.emit('savedLogs', lastLogs);
});
function readFile(path) {
return fs.readFileSync(path, 'utf8');
}
答案 0 :(得分:0)
您必须首先启动socket.io才能发出单个套接字,就像这样
io.on("connection", function (socket) {
socket.on('myEvent', function (data) {
socket.emit('myEventResponse','yourResponse');
});
})
但是,如果您想广播给所有连接的客户端,则可以使用
io.emit('savedLogs', lastLogs);