如何从node.js和socket.io获取有关负载的信息

时间:2019-06-28 18:52:33

标签: node.js socket.io

我希望我的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');
}

1 个答案:

答案 0 :(得分:0)

您必须首先启动socket.io才能发出单个套接字,就像这样

io.on("connection", function (socket) {
    socket.on('myEvent', function (data) {
        socket.emit('myEventResponse','yourResponse');
  });
})

但是,如果您想广播给所有连接的客户端,则可以使用

io.emit('savedLogs', lastLogs);