【问题标题】:Socket emit within the server sided code node服务器端代码节点内的套接字发射
【发布时间】:2017-01-30 00:58:49
【问题描述】:

我正在使用 MEAN 堆栈,带有 angularjs 前端,节点后端。

是否可以在某些函数中进行套接字发出调用?我只对向客户端发送数据感兴趣。

或者推送服务器端是如何工作的,这也可以用套接字来完成吗?

客户端请求如下服务器端

var bankfactory = require(path.resolve('./modules/articles/server/factory/user_factory.js'));


 app.post('/api/bank', function (req, res) {
bankfactory.bank_inn(req.user._id,amount).then( function (bankresult) {
                res.json(bankresult);
            });
});

银行工厂:

    exports.bank_inn = bank_inn;


    function bank_inn(playerid,amount) {

if (playerid == 1) {

} else {

    // possible to make a emit call to the client here?
//emit("newevent,datahere)
}

    }

是否可以在其中发出套接字?

【问题讨论】:

    标签: javascript angularjs node.js sockets socket.io


    【解决方案1】:

    您可以添加自己的事件发射器并在 bank_inn 函数中发出事件:

    'use strict';
    const EventEmitter = require('events');
    class MyEmitter extends EventEmitter {}
    const myEmitter = new MyEmitter();
    
    function bank_inn(playerid,amount) {
    
    if (playerid == 1) {
    
    } else {
      myEmitter.emit('myevent', someData);
    }
    
    io.sockets.on('connection', function (socket) {
        myEmitter.on('myevent', function(someData) {
            socket.emit('someEvent', someData);
        });
    };
    

    【讨论】:

    • 那么,如果我有 80 个差异文件,我需要在所有文件上都制作吗?
    • 不,只定义一次 myEmitter,然后根据需要发出各种事件
    • 我的意思是连接上的套接字;)
    • 不,io.on('connection') 也只有一次.. 某处;)
    • 我如何调用包含套接字和连接的文件?
    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 2017-01-04
    • 2015-08-13
    • 1970-01-01
    • 2013-10-08
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多