相关疑难解决方法(0)

1014
推荐指数
15
解决办法
55万
查看次数

什么是长轮询,Websockets,服务器发送事件(SSE)和Comet?

我曾尝试阅读一些文章,但我对这些概念还不是很清楚.

有人愿意尝试向我解释这些技术是什么:

  1. 长轮询
  2. 服务器发送的事件
  3. 的WebSockets
  4. 彗星

我每次遇到的一件事是,服务器保持连接打开并将数据推送到客户端.如何保持连接打开,客户端如何获取推送数据?(客户端如何使用数据,也许某些代码可能会有帮助?)

现在,我应该将其中哪一个用于实时应用.我一直听说很多关于websockets(有socket.io [一个node.js库]),但为什么不用PHP?

php comet long-polling websocket server-sent-events

1005
推荐指数
4
解决办法
17万
查看次数

显示长时间运行的PHP脚本的进度

我有一个PHP脚本可能需要至少10秒才能运行.我想为用户显示它的进度.

在执行类中,我有一个属性$progress,它用进度(在1-100中)和一个方法get_progress()(其目的应该是显而易见的)更新.

问题是,如何更新<progress>前端的元素供用户查看?

我认为AJAX是解决方案,但我无法理解它.我无法访问同一个对象实例.

php ajax progress-bar

45
推荐指数
6
解决办法
8万
查看次数

"持久连接"到底意味着什么?

我读到了" HTTP持久连接 ",但不知怎的,我似乎并不明白在这种情况下持久性意味着什么.
你能详细说说吗?

connection http persistent

21
推荐指数
2
解决办法
2万
查看次数

NodeJS模块化

所以,我被告知在nodeJS 中传递request和/或response变量是"不好的做法".但这意味着你的大部分代码都必须在server.js文件中,这使得它变得杂乱无章.

你如何模块化你的nodejs服务器,req/res适当地传递并能够将你的代码组织成单独的文件?

例如,我想我的分裂插座的路由,.get.post为不同的文件,但仍然可以使用回调参数,如下所示:

app.io.route("disconnect", function(req,res) { <--- these params
    db.query("UPDATE player_data SET online=0 WHERE id="+mysql.escape(req.session.user));
    req.io.broadcast("event", {msg:req.session.username+" has logged out!"});
    app.io.broadcast("reloadXY");
});
Run Code Online (Sandbox Code Playgroud)

截至目前,他们都在一个文件中,我不喜欢这样.

javascript modularity node.js express

11
推荐指数
1
解决办法
341
查看次数

HTTP持久连接与TCP套接字连接

来自维基百科上的这篇文章:

HTTP 1.0中未正式支持Keepalive消息.在HTTP 1.1中,所有连接都被认为是持久的,除非另有声明.

  • 这是否意味着使用这种机制我实际上可以模拟TCP套接字连接?
  • 使用这个可以让服务器"推送"数据到客户端吗?
  • 是否所有HTTP连接,甚至是我用来连接Stack Overflow"HTTP持久性"的连接?
  • 服务器推送的COMET技术是否使用这种HTTP持久连接机制将数据推送到客户端?

tcp http persistent

8
推荐指数
1
解决办法
1万
查看次数

用PHP显示部分输出

我有这个代码:

<?php
for($i = 0; $i<30; $i++)
{
    echo "$i<br>";          
    usleep(100000); 
}

?>
Run Code Online (Sandbox Code Playgroud)

我想知道如何让浏览器显示0,然后是1,然后是2,......

在我的示例中,它加载一段时间然后显示0-29.

php

3
推荐指数
1
解决办法
1814
查看次数

PHP中的多线程

在apcahe服务器中,我想运行一个PHP脚本作为cron,它在后台启动一个php文件,并在文件启动后退出,并且不等待脚本完成,因为该脚本需要大约60分钟才能完成.这可以做到吗?

php cron

3
推荐指数
1
解决办法
2152
查看次数