【问题标题】:Using Primus instead of socket-io with simplewebrtc使用 Primus 而不是 socket-io 和 simplewebrtc
【发布时间】:2015-12-14 11:05:11
【问题描述】:

我想在 simplewebrtc 中使用 Primus 而不是 socket-io。 任何人都可以帮助我将以下代码转换为使用 Primus 吗? https://github.com/andyet/SimpleWebRTC/blob/master/socketioconnection.js

【问题讨论】:

    标签: node.js socket.io primus simplewebrtc


    【解决方案1】:

    它的工作原理是您可以将任何构造函数作为connection 属性传递给配置,以及您需要的任何其他选项。然后,您的构造函数需要做的就是使用以下四种方法导出对象:onemitgetSessionIddisconnect。对于 Primus,你可以有这样的东西(我以前从未使用过 Primus,只是看文档) -

    var Primus = window.Primus; // get primus from wherever you want
    
    function PrimusConnection(config) {
        var self = this;
        var primus = new Primus(config.url, config.primus);
        primus.on('connection', function (spark) {
          // spark is the new connection.
          self.connection = spark;
        });
    }
    
    PrimusConnection.prototype.on = function (eventName, function) {
        this.connection.on(eventName, function);
    };
    
    PrimusConnection.prototype.emit = function () {
        this.connection.write.apply(this.connection, arguments);
    };
    
    PrimusConnection.prototype.getSessionid = function () {
        return this.connection.id;
    };
    
    PrimusConnection.prototype.disconnect = function () {
        return this.connection.end.apply(this.connection, arguments);
    };
    
    module.exports = PrimusConnection;
    

    【讨论】:

    • 非常感谢@xdumaine。根据与 Primus 团队的讨论,我也必须在服务器端使用 Primus。目前我们使用内部使用 SockJS 的 Spring-websockets 开发服务器端部分。所以 primus 团队告诉它不适用于 SockJS。所以我要修改上面的代码来使用sockjs-client。