Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从客户端触发websocket帧碎片?_Websocket - Fatal编程技术网

如何从客户端触发websocket帧碎片?

如何从客户端触发websocket帧碎片?,websocket,Websocket,我正在构建一个Web套接字服务器,但是,出于测试目的,我希望Chrome、Firefox或任何其他浏览器发送消息片段,以便测试我的实现 我甚至尝试发送100K文本数据,FIN标志始终设置为1,操作码为文本 有没有办法手动触发碎片帧?有没有更灵活的客户端?Javascript WebSocket API不公开此选项。最近,当一些更现代的浏览器(Chromium的衍生物)不可预测地发送碎片化的WebSocket框架时,我也遇到了同样的挫折 为了进行测试,我使用自己的TCP客户端发送预先计算的碎片We

我正在构建一个Web套接字服务器,但是,出于测试目的,我希望Chrome、Firefox或任何其他浏览器发送消息片段,以便测试我的实现

我甚至尝试发送100K文本数据,FIN标志始终设置为1,操作码为文本


有没有办法手动触发碎片帧?有没有更灵活的客户端?

Javascript WebSocket API不公开此选项。最近,当一些更现代的浏览器(Chromium的衍生物)不可预测地发送碎片化的WebSocket框架时,我也遇到了同样的挫折


为了进行测试,我使用自己的TCP客户端发送预先计算的碎片WebSocket帧。虽然不理想,但它完成了任务,而且看来还没有其他选择。

Javascript WebSocket API没有公开此选项。最近,当一些更现代的浏览器(Chromium的衍生物)不可预测地发送碎片化的WebSocket框架时,我也遇到了同样的挫折


为了进行测试,我使用自己的TCP客户端发送预先计算的碎片WebSocket帧。不太理想,但它完成了任务,而且看来还没有其他选择。

您是否尝试过某种模拟框架来模拟碎片,而不是尝试从浏览器触发行为?(另外,我认为数据包碎片可能发生在服务器和客户端之间的各种路由器/交换机硬件中,不一定来自浏览器,因为它发生在TCP堆栈中与应用层不同的一层((在您的情况下是http))谢谢。目前,我能够为同一条消息处理多个recv(),因此,从这个意义上讲,我认为我已被涵盖。@dev.glitch TCP或IP碎片不会导致WebSocket碎片。前者创建更多的IP数据包和以太网帧,但不改变TCP序列号。WebSocket碎片插入额外的WebSocket帧头,这会导致TCP序列号移动。因此,诸如交换机/路由器硬件(甚至NIC中的TSO)之类的L2/L3中介永远不会导致WebSocket碎片。需要进行更多实质性的流编辑(特别是如果您也想测试交错ping),因此您需要更像代理的东西。您是否尝试过某种模拟框架来模拟碎片,而不是尝试从浏览器触发行为?(另外,我认为数据包碎片可能发生在服务器和客户端之间的各种路由器/交换机硬件中,不一定来自浏览器,因为它发生在TCP堆栈中与应用层不同的一层((在您的情况下是http))谢谢。目前,我能够为同一条消息处理多个recv(),因此,从这个意义上讲,我认为我已被涵盖。@dev.glitch TCP或IP碎片不会导致WebSocket碎片。前者创建更多的IP数据包和以太网帧,但不改变TCP序列号。WebSocket碎片插入额外的WebSocket帧头,这会导致TCP序列号移动。因此,诸如交换机/路由器硬件(甚至NIC中的TSO)之类的L2/L3中介永远不会导致WebSocket碎片。需要进行更多实质性的流编辑(特别是如果您也想测试交错ping的话)——因此您需要更像代理的东西。谢谢,我将研究运行我自己的客户端。谢谢,我将研究运行我自己的客户端。