我正在尝试将数据直接从服务器推送到客户端的php网页。我已经用谷歌搜索过这个问题很多次了,我不想使用ajax推送引擎或其他东西,比如cometD (如果你知道我在说什么)。我想知道是否有任何方法可以将程序放在我的服务器上,将数据发送到所有连接的客户端。我更喜欢用c或者c++或者c#来实现,我可以自己编程,我只是想知道它是不是可能的和如何实现的。
发布于 2012-02-11 08:54:08
也许您不了解HTTP协议是如何工作的。您应该首先记录更多关于它的信息。我将尝试解释如何在您的案例中使用它:
正如您所看到的,我并不是在谈论任何语言实现,只是在讨论如何偏离HTTP协议来做您想要做的事情。推送方法的缺点是您将为X客户端打开X套接字,即使客户端是空闲的。这不会发生在Pull方法中,当响应被发送时套接字是关闭的。
现在,如果您想要执行此操作,则需要从客户端启动连接。这就是"Ajax“部分有用的地方,让我们在jquery中看看:
$.get('/wait_for_message', function(data) {
alert('My server send:' + data);
})您的服务器将收到一个GET /wait_for_message HTTP/1.1请求。您可以将此套接字保存在“等待某些东西的客户端”列表中,而不是发送回数据。然后,当需要时,您可以遍历此列表,将数据写入所有套接字,然后tada:所有客户端都将接收数据。
现在这个机制并不容易正确,这就是为什么你可以使用其他人提出的另一个项目的原因。
发布于 2012-02-11 09:03:59
您可以用任何语言编写/修改一个非常简单的web服务器,以格式化和提供来自数据库的数据,甚至可以忽略实际请求是什么。所有你需要做的就是写一个头和数据到一个套接字。您可以通过根据某个列表主动发起连接来执行相同的操作。
https://stackoverflow.com/questions/9232963
复制相似问题