【问题标题】:What am I doing wrong in socket.io configuration?我在 socket.io 配置中做错了什么?
【发布时间】:2017-10-31 02:52:31
【问题描述】:

我正在尝试将即时消息添加到现有应用程序。但我不确定应该如何配置 socket.io 模块。 我已经尝试过以下方法:

process.env.NODE_ENV = process.env.NODE_ENV || 'development';
const config = require('./config/config.js');

var expressConfig = require('./config/express.js').front,
  models = require('./app/models'),
  passConfig = require('./config/passport-front.js');

const app = expressConfig();
const passport = passConfig();

app.set('port', config.frontPort);
const http = require('http').Server(app);
const io = require('socket.io')(http);

io.on('connection', function (socket) {
  console.log('Connected');
});

models.sequelize.sync().then(function () {
  var server = http.listen(app.get('port'), function () {
    console.log('Express server listening on port ' + server.address().port);
  });

});

module.exports = http;

由于打开页面时未记录连接,因此我假设缺少某些内容。我的错在哪里?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    您没有显示您的客户端代码,因此很难告诉您出了什么问题。您在浏览器中遇到任何错误吗?浏览器的网络流量是多少?没有它就很难说出具体的内容。

    看看这个答案:

    它有一个与您正在尝试做的事情类似的工作示例。

    一般 - 请记住,您需要在浏览器中包含 socket.io 客户端代码:

    <script src="/socket.io/socket.io.js"></script>
    

    然后您需要通过以下方式与io() 联系:

    var s = io();
    s.on('color', function (color) {
      document.body.style.backgroundColor = color;
    });
    

    这里的“颜色”只是来自 GitHub 上这个项目的一个示例:

    这是一个网站示例,它更改来自 socket.io 的消息中选择的颜色。

    【讨论】:

    • 谢谢。看来我在等待魔法,因为我从来没有在客户端写过任何代码。我错过了简单的io.connect()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多