我需要制作需要经常轮询服务器的应用程序,但GAE对请求有限制,因此提出大量请求可能会非常昂贵.是否可以使用长轮询并请求等待最长30秒的更改?
我需要在我的应用程序中实现长轮询以检索事件.但我不知道该怎么做.我知道长轮询的概念,即保持连接打开,直到事件发生.但是我该如何在我的项目中实现这一点.如果你能给我一个简单的长轮询客户端示例和我想的观点,我真的很感激.谢谢!
我想WebSocket用Java.问题是,我的服务器通过无法配置的代理与客户端分离.我一直在寻找WebSocket具有后备的实现,例如long-polling.我发现socket.io但不知道后备是如何工作的.
在哪种情况下,它取代WebSocket和如何?
是否有其他库,如socket.io与回退实现?我想找到一个Java,但我只找到了Jetty.
编辑:回退只取决于浏览器与WebSocket的兼容性吗?如果失败的原因是代理配置错误,那么socket.io会将其检测为兼容性故障,从而切换到长轮询(或其他技术)?
答:从v1开始,socket.io包含engine.io,它带来了以下功能:
流媒体是一个可行的选择?根据我的选择,服务器端会有性能差异吗?这个案子比另一个好吗?
我正在使用运行在服务器端的Tomcat的GWT应用程序.为了了解我的需求,想象一下同时更新几种股票的股票价格.
我知道有Comet服务器技术可以做到这一点,但我想写一些简单和本土的东西.
当一条记录插入到MySQL表中时,我希望它以某种方式将这些数据传递给一系列使用PHP(或其他)的长轮询Apache连接.因此,多个人通过他们的浏览器"监听",第二个发生MySQL INSERT,它被发送到他们的浏览器并执行.
简单的方法是让PHP脚本轮询MySQL数据库,但这并不是真的从服务器推送并引入了一些不必要的数据库查询令人无法接受的顺序.我希望从MySQL获取数据到长轮询连接,基本上没有监听器查询.
有关如何实现这一点的任何想法?
我使用ajax long polling和Gevent实现了聊天.要读取,客户端ajax更新视图并等待Gevent.event.wait进行更新.
问题:Django在请求开始时打开的Postgresql事务(获取会话信息)直到请求结束才关闭.那些空闲的事务占用了大量的内存.
在不关闭请求的情况下关闭Postgresql事务最简洁的方法是什么?我正在手动发送request_finished信号,但感觉就像是黑客.
我试图在我的Spring-MVC Web App中实现长轮询,但是在4-5继续AJAX请求之后它冻结了我的浏览器和其他请求.我不知道这里是什么是我的相关代码.
控制器方法:(服务器端): -
@Asynchronous
@RequestMapping("/notify")
public @ResponseBody
Events notifyEvent(HttpServletRequest request) {
Events events = null;
try {
events = (Events) request.getSession(false).getServletContext().getAttribute("events");
System.out.println("Request Came from" + ((com.hcdc.coedp.safe.domain.User) request.getSession(false).getAttribute(Constants.KEY_LOGGED_IN_USER)).getLoginId());
if (!events.getTypeOfEvents().isEmpty()) {
System.out.println("Removing older entries");
events.getTypeOfEvents().clear();
}
while (!events.isHappend()) {
//Waiting for event to happen.
}
events = Events.getInstance();
events.setHappend(false);
request.getSession(false).getServletContext().setAttribute("events", events);
}catch (Exception e) {
e.printStackTrace();
}
return events;
}
Run Code Online (Sandbox Code Playgroud)
长轮询脚本(客户端): -
$(document).ready(function() {
$.ajaxSetup({
async:true//set a global ajax requests as asynchronus
});
alert('Handler for .onload() called.'); …Run Code Online (Sandbox Code Playgroud) 我正在考虑kafka实现一个低延迟的消息队列,我一直在阅读有关消费者长期轮询的信息.但是,没有关于如何实际使用长轮询的示例,或者您需要设置哪些选项来启用它.如何使用kafka java api启用长轮询?
以下脚本将无限期运行,并将通过使用启动php myscript.php.
http://example.com/longpolling.php只会在有东西要通信时才会响应php myscript.php,并且在longpolling.php达到其时间限制之前,下面的curl请求会超时.
我应该关闭并重新打开每个循环的卷曲连接,或者让它无限期地保持打开状态.
<?php
// php myscript.php
$options=[
CURLOPT_URL=>'http://example.com/longpolling.php',
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_CONNECTTIMEOUT => 300,
CURLOPT_TIMEOUT=> 300
];
$ch = curl_init();
curl_setopt_array( $ch, $options );
while (true) {
$rsp = curl_exec( $ch );
// Do something
//curl_close( $ch ); //should I close and reopen?
}
Run Code Online (Sandbox Code Playgroud) 嗨,伙计们,我正在尝试与使用SignalR建立聊天通信的Asp.Net核心2.1应用程序进行通信,但我无法弄清楚使用颤振实现这一目标的最佳方法是什么.
我已经搜索了一些库来做这件事,但我找到的那个与Flutter不兼容,只是使用Dart web,因为它使用原始的SignalR.js来包装方法.
你们有关于如何完成这项任务的任何提示吗?
long-polling ×10
comet ×3
django ×2
java ×2
php ×2
websocket ×2
ajax ×1
apache ×1
apache-kafka ×1
cometd ×1
curl ×1
django-views ×1
fallback ×1
flutter ×1
gevent ×1
gwt ×1
jquery ×1
mysql ×1
postgresql ×1
socket.io ×1
spring-mvc ×1
streaming ×1