我正在关注使用HTTP长轮询的Spring MVC聊天客户端的this example。
我的Web服务器位于端口7555,我需要能够从端口80(浏览器)向端口7555发出HTTP长轮询请求,因此我创建了一个调用我的Web服务的PHP脚本。
<?php
$index = $_GET["index"];
echo $index;
echo $index2;
$urlVar = "http://localhost:7555/test?" . $index . $index2;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlVar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PORT, 7305);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_exec($ch)
?>
我用我的JavaScript调用这个PHP文件,参数如下:
($.ajax({
url : "http://localhost/myphpscript.php?index=" + i,
type : "GET",
cache: false,
success : function(messages) {
//do stuff
}
}));
PHP文件位于我的localhost中。这似乎不起作用,因为JavaScript似乎无休止地调用PHP(它调用URL)。我是否正确使用PHP卷曲进行长时间轮询?我是否需要在JavaScript中进行Ajax调用,因为我是curl中的HTTP调用?
答案 0 :(得分:1)
使用CURLOPT_RETURNTRANSFER
,您需要回复curl_exec($ch)
的结果
echo curl_exec($ch);
答案 1 :(得分:0)
因为它不允许发送cross site requests(这也适用于端口),你需要做这个PHP中继的事情。
从不如此。一遍又一遍地请求相同的请求(轮询)几乎是正确的但是您的Web服务应该保持连接打开,直到它有一些新信息或请求超时(长轮询)。
您的网络服务返回什么(Http-Status ok?任何内容?)