繁体   English   中英

C http服务器编程

[英]C http server programming

我正在尝试将数据从服务器直接推送到客户端的php网页。 我多次用Google搜索这个问题,我不想使用ajax推送引擎或其他东西,如cometD(如果你知道我在说什么)。 我想知道是否有任何方法可以在我的服务器上放置一个程序,将程序发送到所有连接的客户端。 我希望这可以用c或c ++或c#来完成,我可以自己编程,如果有可能,我可以如何编程。

也许你没有得到HTTP协议如何工作。 你应该首先记录自己的更多信息。 我将尝试解释如何将它用于您的情况:

  • 轮询 :每隔X秒,客户端将请求包含您想要的内容的网页。 这是使用HTTP的标准方式:客户端发送GET,Server发送响应。

  • 推送 :每个客户端都会请求一个网页,但服务器实际上会等你发送消息。 您可以使用此http通道“推送”数据:客户端发送GET,服务器等待他有响应发送

如您所见,我不是在谈论任何语言实现,只是关于如何调整HTTP协议以执行您想要的操作。 Push方法的不好之处在于,即使客户端处于空闲状态,您也会为X客户端打开X套接字。 使用Pull方法时,套接字在发送响应时关闭。

现在,如果要执行此操作,则需要从客户端启动连接。 这是“Ajax”部分可能有用的地方,让我们在jquery中看到:

$.get('/wait_for_message', function(data) {
    alert('My server send:' + data);
})

您的服务器将获得GET /wait_for_message HTTP/1.1请求。 您可以将此套接字保存在“等待某事的客户端”列表中,而不是发回数据。 然后,当需要时,您可以遍历此列表,将数据写入所有套接字,并且tada:所有客户端都将接收数据。

现在这种机制主义并不容易做到正确,这就是为什么你可以使用另一个项目,正如其他人提出的那样。

您可以用任何语言编写/修改一个非常简单的Web服务器,以格式化和提供数据库中的数据,甚至忽略实际的请求。 您需要做的就是将标头和数据写入套接字。 您可以根据某些列表主动启动连接来执行相同的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM