【问题标题】:How to get information on load from node.js and socket.io如何从 node.js 和 socket.io 获取负载信息
【发布时间】:2019-06-29 03:37:17
【问题描述】:

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

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    你必须先启动 socket.io 才能发射到单个套接字,像这样

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

    但是如果你想向所有连接的客户端广播,你可以使用只是使用

    io.emit('savedLogs', lastLogs);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-05-05
      • 2018-07-10
      • 2018-08-12
      • 1970-01-01
      • 2022-10-25
      相关资源
      最近更新 更多