我有一些关于Web服务和服务器端编程的问题(可能答案可能需要一本书)。
但首先是一个小序言。 最近我们看到了新的应用程序和游戏使用某种与数据库的实时交互,或者更一般地,与其他用户交互。我说的是共享绘图画布,像this这样的游戏,或简单的聊天,或Android应用程序“照片世界”,实时您可以看到谁在线,分享您的照片等。< / p>
现在我的问题: 所有这些应用程序都基于经典的TCP客户端/服务器架构,还是有办法以更简单的方式制作它们,比如像LAMP这样的网络平台?
我要问的是,换句话说: PHP + MySQL(或JSP,或RoR,或任何其他服务器语言)能否提供一种使在线用户实时通信和共享数据的方法?如果没有临时表的丑陋和沉重的机制,有没有办法做到这一点?
谢谢!我希望我已经清楚了。
答案 0 :(得分:-1)
答案 1 :(得分:-1)
编辑:CRAP ....我没有看到问题发布的日期。
我无法相信。这是我连续第三个涉及XHR Long Polling又名Comet编程的问题。 Daliz,你想要的是可能的,简单的,并通过使用XHR Long Polling的各种网站完成。
概念:通常,Web浏览器向服务器发送请求,服务器发回响应并关闭与浏览器的连接。 Comet编程不是在最后关闭连接,而是保持连接打开。因此,浏览器和服务器之间的连接仍然是打开的。因此,简单来说,当我们想要连接到Alice时,我们找到连接到她的浏览器的线程并将消息发送给Alice。
Facebook呗使用相同的概念。 Please read This。
如果您的客户端不是Web浏览器而是某些Web服务,那么它就更容易了。与Web浏览器不同的Web服务具有地址。因此,客户端服务使用回调URL调用主服务并注册到特定事件。当该事件发生时,如某人绘制某些东西,主服务将使用客户端服务的回调URL来通知该操作。
在共享照片或其他二进制数据等数据时:也可以将来自一个用户的输入流发送给所有其他相关用户。因此可以共享简单的字符串或照片。但这也意味着照片接收端的用户将不会收到“xxx已向您发送照片的消息。点击此处下载”。他们只会得到一个“你想打开或保存这个文件”选项。