繁体   English   中英

具有轮询请求的socket.io洪水服务器

[英]socket.io flood server with polling requests

当我尝试运行我的socket.io应用程序时,客户端上的socket.io只会向服务器注入新的连接和新的连接,而不是维护一个连接:

在此处输入图片说明

该代码非常基本,那么可能出什么问题了?

样例代码:

服务器:

requirejs(['http', 'socket.io', 'node-static],
    function (Http, SocketIo, staticServer) {
        const staticHTTP = new staticServer.Server('./');
        var http = Http.createServer(function (request, response) {
            request.addListener('end', function () {
                staticHTTP.serve(request, response);
            }).resume();
        });
        var io = SocketIo(http);

        io.on('connection', function (socket) {
            /// Handle connection
            /// but socket IO keeps creating 5 connections per second
        });
        var port = process.env.PORT || 3000;
        http.listen(port, function () {
            console.log('listening on *:' + port);
        });
});

客户:

requirejs(["socket.io"], function (io) {
    var socket = io(location.hostname + ":" + location.port);
    ///These events never occur
    socket.on("connect", function () {
        console.log("Connected via websocket.");
    })
    socket.on("disconnect", function () {
        console.warn("websocket ded")
    });
})

尝试这个...

var socket = io({transports: ['websocket'], upgrade: false});

这迫使socket.io仅使用webSocket而不使用HTTP轮询,然后问题消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM