小编Xav*_*újo的帖子

信令服务器性能问题:Python与NodeJS

我正在开发一个需要特定信令服务器实现的WebRTC应用程序.最初我在NodeJS中开发服务器但后来我决定迁移到Python(使用Django Channels AsyncWebsocketConsumer通过Websockets与客户端通信).迁移后,我使用WebSocket基准测试工具Thor来比较两种实现,这些是获得的结果(5000个websocket连接,每个连接发送1000条消息):

Python(Django Channels)实现:

class SignallingConsumer(AsyncWebsocketConsumer):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.peer = None
        self.signal = None
        self.is_peer_registered = False

    async def connect(self):
        await self.accept()

    async def disconnect(self, close_code):
        pass

    async def receive(self, text_data=None, bytes_data=None):
        pass
Run Code Online (Sandbox Code Playgroud)

NodeJS实现:

method.start = function () {
    this.webServer = this.createWebServer();

    this.webServer.listen(this.config.port, function (){
        console.log("Web server is listening");
    });

    this.socket = this.createWebSocket(this.webServer);
    this.socket.on('connection', function(ws) {

        var pingsCompleted = 0;

        ws.on('message', function(evt) {

        }.bind(this));

        // Set out ping/pong mechanism
        var pingInterval = setInterval(function() {
            if(pingsCompleted …
Run Code Online (Sandbox Code Playgroud)

python django node.js webrtc django-channels

10
推荐指数
1
解决办法
404
查看次数

标签 统计

django ×1

django-channels ×1

node.js ×1

python ×1

webrtc ×1