【问题标题】:Can't seem to get socket io to display any emits似乎无法让套接字 io 显示任何发射
【发布时间】:2015-09-04 08:48:57
【问题描述】:

我一直在试图弄清楚为什么我的终端中无法显示任何发射,而且似乎一切都运行良好......除了看到发射。这是我的代码

var express = require('express');
var path = require('path');

// Create a new Express application
var app = express();

var views = path.join(process.cwd(), 'views');
app.use("/static", express.static("public"));

// Create an http server with Node's HTTP module. 
// Pass it the Express application, and listen on port 3000.
var server = require('http').createServer(app).listen(3000, function() {
    console.log('listening on port ' + 3000)
});

// Instantiate Socket.IO hand have it listen on the Express/HTTP server
var io = require('socket.io')(server);

var game = require('./game');

app.get('/', function(req,res) {
    res.sendFile(path.join(views, 'index.html'));
});

io.on('connect', function(socket) {
    io.emit('connection', { message: "You are connected!" });
    game.initGame(io, socket);
    socket.emit('connected', { message: "You are connected!" });
    io.sockets.emit('test', 'test')
});

任何帮助都会很棒!

【问题讨论】:

    标签: node.js sockets express io


    【解决方案1】:

    发射不会自动打印。 socket.emit 会将消息发送回客户端,而不是终端。使用console.log("whatever")打印到终端:

    io.on('connect', function(socket) {
        console.log('Client connected');
        socket.on('test', function(data) {
            console.log("Got message of type 'test'containing data:", data);
        });
    });
    

    【讨论】:

    • 我明白了。谢谢!我想我很困惑,因为在我从 github 获得的具有套接字 io 的演示游戏中。使用 console.logs 打印在终端中的发射。但是,当我打开端口时,它也说“信息 - 套接字 io 已启动”。我的项目似乎无法做到这一点。也许它与此有关。
    • 他们可能激活了 Socket.IO 的debugging features
    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2016-06-18
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多