- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Mojolicious::Lite 模块来运行 websockets 服务器来处理协议(protocol)。这是我目前用于客户端的测试代码:
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)
得到了混合结果。我的想法是,可能为了刷新数据,只有在处理完先前的数据并将其完全写入服务器端后,才必须发送新数据。如果事实证明这是正确的,那么应该可以编写客户端,使其仅在收到先前发送的数据的结果后才发送新数据;这将达到获得所需“实时”更新的效果。
干杯
最佳答案
OK 解决了,就像上面说的,新数据必须在收到返回响应(下面的代码)后才发送。另外请注意,令人惊讶的是,这种方式实际上比使用 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 冲洗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853716/
除了如何像文件一样读取和写入套接字之外,我对套接字知之甚少。我对使用套接字选择器有一些了解。我不明白为什么你必须刷新一个套接字,那里实际发生了什么?这些位只是卡在内存中的某个地方,直到它们被推开?我在
我想监控下载数据的进度。我想在传输一定量的数据后进行记录。我的代码: int contentLength = 0; final int bufferSize = 1024*8; byte[] buff
你好, 我编写了一个 Java 程序,它使用 Process 对象和 Runtime.exec() 函数调用启动多个 C++ 编写的程序。 C++ 程序使用 cout 和 cin 作为输入和输出。 J
几天前,我通过阅读官方文档开始对 Rust 进行编程。现在,我正在尝试通过阅读 Brian P. Hogan(The Pragmatic Programmers)所著的“程序员练习”一书来挑战我对 R
我正在使用 Mojolicious::Lite 模块来运行 websockets 服务器来处理协议(protocol)。这是我目前用于客户端的测试代码: socket.onopen = functio
我正在为我的一门类(class)和作业学习 C#,我需要从控制台获取用户输入。 在我的程序中我有: choice = (char)System.Console.Read(); 稍后在我使用的程序中 i
我是一名优秀的程序员,十分优秀!