如何使用 C 建立 HTTP 连接?有任何参考资料或示例代码吗?此外,如何实现从用 C 编写的客户端打开 Comet 连接?(任何有关打开 HTTPS 连接的其他信息也将不胜感激。)谢谢!
我知道如何使用 XmlHttpRequest 对象在 javascript 中处理分块下载。有没有办法使用 javascript 执行分块上传,打开连接但只一点一点上传数据块?
我知道 Http 1.1 服务器应该可以进行分块上传,并且发现了很多使用各种其他平台(C# java 等)进行分块上传的参考,但没有找到任何在浏览器中使用 javascript 进行分块上传的参考。
编辑:用例是将数据流式传输到服务器,而不是上传大文件,有点镜像使用分块响应将数据流式传输到客户端。这是发出单独 ajax 请求的替代方案,因为从客户端到服务器的数据块非常频繁(< 0.5 秒间隔)。
为什么每个站点都解释说,在 SSE 中,客户端和服务器之间的单个连接保持打开状态“使用 SSE,客户端发送标准 HTTP 请求,请求事件流,服务器最初使用标准 HTTP 响应进行响应,并保持连接打开”
然后,当服务器决定它可以向客户端发送数据时,当我尝试实现 SSE 时,我会看到每隔几秒发送一次的 fiddler 请求
对我来说,感觉就像长时间轮询,没有一个连接保持打开状态。
而且,并不是服务器决定向客户端发送数据就发送,而是只有当客户端发送下一个请求时才发送数据
如果我用“重试:10000”响应,即使服务器现在想要通知的事情发生了,也只会在下一个请求(从现在起 10 秒后)到达客户端,这对我来说并不真正看起来像连接保持打开状态,服务器会在需要时立即发送数据

假设有一个包含动态生成内容的网页 - 比如包含当前已连接浏览器数量的div.当计数在服务器上发生变化时,我希望所有连接的浏览器重新加载计数,以便每个人都能看到增量/减量.
实现这一目标的最佳方法是什么?
关键字:ajax,广播,浏览器,div,jquery
我正在寻找一个如何使用ASP.NET实现反向Ajax(Comet)的基本示例.我已经查看了以下内容,我现在不想使用它们(因为它们已付款)
http://www.frozenmountain.com/websync/ http://www.lightstreamer.com/demos.htm
我已经在SO上提到了各种链接.但他们中的大多数都指向外部API.我正在寻找一个如何实现它的明确示例.
我有一个简单的彗星聊天.JavaScript使用长轮询发送ajax请求.当服务器在数据库中查找新消息时,它会回答并提供JSON.接下来,JavaScript再次发送请求.
使用Javascript:
function cometConnect(){
$.ajax({
cache:false,
type:"get",
data:'ts='+ts,
url: urlBack,
async: true,
success: function (arr1) {
//work with JSON
//.....
},
complete:function(){
cometConnect(true);
nerr=false;
},
dataType: "text"
});
}
Run Code Online (Sandbox Code Playgroud)
PHP
$flag=true;
$lastmodif = isset($_GET['ts']) ? $_GET['ts'] : 0;
while($flag){
$q=mysql_query("SELECT text, posterId,modified, fromUserId,toUserId, login FROM commonMessage WHERE modified>$lastmodif");
while($r=mysql_fetch_row($q)){
$flag=false;
//Prepare JSON... variable $resp
//.........
}
usleep(5000);
}
echo $resp;
Run Code Online (Sandbox Code Playgroud)
问题是:这个"while($ flag)"可以执行很长时间(如果没有人发布消息).因此,Apache可以抛出exeptions(最长执行时间,有时502 Bad Gateway或Gateway Timeout).
怎么解决?
使用.htaccess和"php_value max_execution_time 0"?
或者简单地从JavaScript发送新请求,当服务器返回错误时(它会使消息更慢)?
可能是,还有其他一些方法吗?
我对使用Django制作实时网络应用非常感兴趣.不幸的是,我在设置方面遇到了一些问题.我正在考虑的一些选择:
Orbited:似乎是Django的选择.不幸的是,他们的域名似乎已经过期,并且几乎所有我需要的文档才能使其正常运行.我已经按照http://mischneider.net/?p=125上的教程进行了操作,但是我遇到了一个神秘的错误(请参阅记录器"stomp.py"找不到处理程序).
流星:我不得不说,他们的网站给我留下了深刻的印象.不幸的是,我正在运行Windows,似乎缺乏关于Windows的任何文档.所以我迷路了.
Cometd:类似的问题:只是不明白安装.
龙卷风:需要pycurl,这反过来需要卷曲.继续抛出CURL_DIR然后libcurl.lib的问题.经过数小时的修补,有效地挫败了我的双手.
请帮忙.在这一点上我非常愿意考虑,好吧,任何事情.好吧,至少如果它记录在一起,我可以弄清楚如何安装它并与Django一起使用它.
任何帮助赞赏.
我现在正在查看facebook新闻提要/自动收报机,我想知道当我的任何连接进行更新时,它使用什么技术/架构来异步提取数据.我能想到的一种可能性是setInterval在函数上使用javascript 来积极地轮询服务器以获取新数据.
我想知道它有多高效.
我能想到的另一种可能的技术是Comet/NodeJS架构,它可以在服务器上有更新时ping客户端.我对这项技术不太熟悉.
如果我想创建类似于此的东西.我该怎么办?第一种方法是首选方法吗?哪些技术可以让我这样做?
我想建立一个基于JavaScript(jQuery将用于AJAX)和PHP的聊天.
我听说这样做的好方法是使用长轮询.
我理解这个想法,但我不知道如何在服务器端实现它.
无限循环听起来像个坏主意.
我读了一些关于Comet tech的文章.他们都提到长期HTTP响应应该是Transfer-Encoding:chunked.我想知道为什么它应该被分块编码.如果响应没有分块编码,客户端javascript仍然可以读取并解析响应的文本,对吗?
是否有任何特殊原因可以对Comet响应进行分块编码?
comet ×10
jquery ×4
ajax ×3
javascript ×3
chat ×2
http ×2
php ×2
asp.net ×1
c ×1
django ×1
long-polling ×1
node.js ×1
push ×1
python ×1
real-time ×1
reverse-ajax ×1
server ×1
server-push ×1