当前位置: 首页 > 面试题库 >

在客户端定义传输类型

丁勇
2023-03-14
问题内容

对于IE,我需要使用jsonp-polling,对于Firefox,则需要使用xhr-polling,因此我尝试在客户端定义传输类型,如下所示:

    if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits); 
            var socket = io.connect(VG.NODE_SERVER_URL,{ 
                    transports:['xhr-polling'] 
            }); 
    } else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ 
            var socket = io.connect(VG.NODE_SERVER_URL,{ 
                    transports:['jsonp-polling'] 
            }); 
    } else { 
            var socket = io.connect(VG.NODE_SERVER_URL); 
    }

我在Firefox上进行了测试,并在socket.io-client lib上添加了日志记录。在

https://github.com/LearnBoost/socket.io-
client/blob/master/dist/socket.io.js#L1509

option.transports是["xhr-polling", "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling"],这是正确的。但是,在

https://github.com/LearnBoost/socket.io-
client/blob/master/dist/socket.io.js#L1679

我不知道为什么将传输更改为["htmlfile", "jsonp- polling", "xhr- polling"],其顺序与我在服务器端定义的顺序相同。

为什么不使用上一个选项?


问题答案:

该错误现已在socket.io 0.9.6版中修复,我可以使用它,并且可以正常工作:

socket = io.connect(HOST_REMOTE, {
    transports: ['xhr-polling']
});

在1.0.0及更高版本中:

socket = io.connect(HOST_REMOTE, {
    transports: ['polling']
});


 类似资料:
  • 我正在尝试重建一个与elasticsearch 2.4对话的插件,以便与elasticsearch 5配合使用。 代码来自:https://github.com/pentaho/pentaho-kettle/blob/master/plugins/elasticsearch-bulk-insert/src/org/pentaho/di/trans/steps/elasticsearchbulk/E

  • 从Java使用弹性搜索的最佳实践是什么?例如,可以使用REST API轻松找到留档和逐个查询删除功能的示例。传输客户端Java情况并非如此。 在哪里可以找到Java Transport Client的使用示例 Java Transport Client是否通过REST API覆盖了整个ElasticSearch功能,比如HTTP客户端

  • 我使用laravel-graphql作为后端GraphQL服务,使用vue-apollo作为前端客户端。 在我的Vue组件中,我有一个gql查询,如下所示:(关系:一首歌有更多的歌曲部分) 现在有一个突变,我想用它来更新给定的歌曲:

  • 问题内容: 我正在与socket.io聊天应用程序,我想用我的自定义客户端ID,而不是默认的(,)。连接时是否有任何发送自定义标识符的方式,或仅使用某种方式来跟踪每个ID的自定义名称?谢谢! 问题答案: 您可以在服务器上创建一个数组,并在其上存储自定义对象。例如,您可以存储Socket.io创建的ID和每个客户端发送到服务器的自定义ID: 在此示例中,您需要从每个客户端调用 storeClient

  • 我有简单的客户端服务器应用程序使用RMI。服务器端应该生成某种PDF文件,客户端应该显示它。 当试图通过调用我自己的通用远程接口的正确方法在服务器端生成我的pdf时,被抛出在客户端。 我认为,使用RMI就像使用黑盒一样——客户机调用方法并接收响应,而不知道如何完成,对双方来说唯一的公共类是远程接口。此外,我认为这将允许我将客户端所需的依赖关系缩减到最小。 客户机必须让所有服务器的库都在其类路径中才

  • 自定义传输 Nest provides TCP and Redis as a built-in transport methods. It makes prototyping incredibly fast & easy, but sometimes you might want to use another type of transport, e.g. RabbitMQ messaging.