perl – Websockets和Mojolicious冲洗?

perl – Websockets和Mojolicious冲洗?,第1张

概述我使用Mojolicious :: Lite模块运行websockets服务器来处理协议.这是我目前用于客户端的测试代码: socket.onopen = function(){$.each(proxies, function(){socket.send(this);});}socket.onmessage = function(response){alert(response);} 和服务器 我使用MojolicIoUs :: lite模块运行websockets服务器来处理协议.这是我目前用于客户端的测试代码:

socket.onopen = function(){$.each(proxIEs,function(){socket.send(this);});}socket.onmessage = function(response){alert(response);}

和服务器

websocket '/' => sub {     my $self = shift;    $self->on(message => sub {        my ($self,$message) = @_;        my @info = split /-/,$message;        $mech_proxy = WWW::Mechanize->new(timeout=>$info[1],autocheck=>0);        $self->send(test_proxy($info[0]) => sub{sleep(int(rand(10)))});    });};app->start;

无论如何,我认为这显然会避免需要刷新输出,因为最初我实际上只做一个发送客户端然后在服务器端的循环中发送返回消息;这不起作用,因为我无法刷新输出,必须等待循环完成.然而,改变它并没有帮助,因为我仍然必须等到最后一次服务器端发送完成,然后才将数据发送到客户端.
您是否知道如何在处理中获得实时“更新”,即在发送时输出服务器响应?

编辑:
我使用setTimout(socket.send(this),1000)获得混合结果.我的想法是,为了获得数据刷新,只有在先前的数据处理完毕并在服务器端完全写入后才能发送新数据.如果事实证明这是正确的,那么应该可以编写客户端,以便它在收到先前发送的数据的结果后才发送新数据;这将实现获得所需的“实时”更新的效果.

干杯

解决方法 确定将其排序,如上所述,只有在收到回复响应后才能发送新数据(下面的代码).还有一点需要注意,这种方式实际上比使用jquery循环更快.

socket.onopen = function(){    socket.send(proxIEs[0]+'-'+timeout);    proxIEs.splice(0,1);}socket.onmessage = function(response){    if (proxIEs.length > 0) {        socket.send(proxIEs[0]+'-'+timeout);        proxIEs.splice(0,1);    }document.write(response.data);}
总结

以上是内存溢出为你收集整理的perl – Websockets和Mojolicious冲洗?全部内容,希望文章能够帮你解决perl – Websockets和Mojolicious冲洗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存