【问题标题】:dynamically update php website动态更新php网站
【发布时间】:2013-03-21 05:17:13
【问题描述】:

好的...我对 php 还很陌生(我知道这可能是一个愚蠢的问题),但我正在将 C++ 套接字程序连接到 php 网站。目前我可以将字符串发送到网站和一切运行良好...除了...它只显示发送一次的东西 php 完成执行...

我认为可行的解决方案: 1. 使页面在执行时以某种方式运行 echo 2.找到一个合适的解决方案,即建立一个tcp连接并通过用户会话维护(如何??)然后执行一个脚本,在接收数据时打印到页面

我试过冲洗...没用

其实想了想……有没有解决方案,即使客户端换页也能保持socket tcp连接?那会很有用...这是来源:

服务器(C++): http://pastebin.com/QfaUrF92

客户端(php): http://pastebin.com/hZXKsGN0

请注意,我知道代码有多垃圾。它只是在测试和摆弄,以弄清楚我能做什么以及如何做

编辑:

我正在尝试通过将 php 会话连接到 C++ 服务器来实现我自己的长轮询系统...如果会很困难,我愿意放弃会话,但最终我很想成为能够维护一个会话,以便我可以通过浏览器更改页面来分叉一个进程来管理客户端

【问题讨论】:

  • 问题是,你想做什么?将 c++ 连接到 php 网站并不是“一件好事”,而是使用信息更新数据源(数据库)并从 php 中获取它。动态更改最有可能在 javascript/ajax 中完成,而不是在 php/c++ 中
  • 我的问题是我是 C++ 编码员,而不是 php/www 人.. 但不幸的是我需要它.. 如果有帮助,我正在实施一个长轮询系统.. 我只是想要自己创建系统...我会假设您不能在浏览器会话中维护套接字,您可以...我可以使用套接字进行长时间轮询吗?如果不是...如何将 C++ 应用程序连接到 php 会话,以便能够管理轮询系统
  • 一种解决方案是 SSE(服务器端事件)然后我可以使用 thrift 发送从客户端事件(即表单发送)接收的数据,然后 C++ 通过 thrift 发送数据,然后用作 SSE。 ..我唯一关心的是可扩展性..小规模,是的,这会起作用..但是大规模,php sse会太慢吗?
  • @CaptainPayalytic 我正在使用的套接字(由于我对 php 的了解有限)很可能不会在会话中维护。我问这些问题是因为我对这方面的知识知之甚少php 而我的主要关注点是服务器端,php 只是一个必要的邪恶。一个问题通常有不止一种解决方案。因此,与其提出错误的解决方案,我想问问那些有经验并能提出更好路线的人
  • @MichaelCrook 浏览器一般不是用 php 编写的,所以我不明白你在说什么????

标签: php c++ sockets


【解决方案1】:

PHP 在服务器端执行,因此一旦生成页面,它就是静态的。如果您需要不断更新页面内容,您可以使用 Web 套接字或 ajax。基本上,一旦页面被渲染,AJAX 会让您的浏览器使用 Javascript 与您的服务器对话。像 jQuery 这样的库让它变得非常简单。

来自 jQuery 文档 (http://api.jquery.com/jQuery.post/):

$.post("test.php", { name: "John", time: "2pm" })
.done(function(data) {
  alert("Data Loaded: " + data);
});

【讨论】:

  • 那将是 Websockets 的教程,是的。那篇文章是从 2010 年开始的,而且很多地方都发生了变化。一些较旧的浏览器也不支持 Websocket。如果您需要在旧浏览器中工作的东西,我会查看 jQuery、ajax 请求和长轮询的组合。
【解决方案2】:

你可以使用 NodeJS。它是服务器端 JavaScript。

使用 NodeJS,您可以在浏览器页面和 Web 服务器之间建立套接字连接。使用它,您可以根据服务器的意愿将数据推送到浏览器。

但您可能需要一些时间才能开始。

推荐阅读:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 2010-09-20
    相关资源
    最近更新 更多