2012-02-13 176 views
-2

我想制作一个使用javascript.I的聊天系统我不想要任何现有的应用程序。我需要知道如何聊天实际工作?我是否可以在没有任何数据库的情况下做到这一点?它就像是每隔x秒检查一次数据库中的一个特定字段。或者可以使用http请求吗?如果是这样,我怎样才能请求php页面更新其他客户端浏览器中的div ?使用javascript进行聊天

码样本被理解..

+1

听起来你可能想看看node.js:http://nodejs.org/ – 2012-02-13 16:47:18

+0

你可以用Node.js和DNode很容易地做到这一点,如果你想使用JavaScript(也可以服务器端)。只需在客户端调用服务器功能就像调用任何JavaScript函数一样。 – pimvdb 2012-02-13 16:47:19

回答

4

首先,是有可能实现这一目标没有数据库。事实上,平面文件可能会更好,这取决于您的具体要求。

至于你的第二个问题,不应该每隔x秒检查一次更新。通过每隔x秒检查一次,你就会浪费宝贵的服务器资源,特别是如果你的聊天系统是数据库驱动的。彗星(或长轮询)是一种特别适用于聊天的技术。它的工作原理是这样的:

客户端与服务器建立连接,该服务器保持打开状态,直到服务器表示存在更新。服务器然后将更新推送到客户端并断开连接。客户端然后重新连接到服务器并等待另一个更新。只要用户在页面上,此过程就会继续。

这种方法比每隔x秒调用一次服务器效率更高。这也意味着内容会立即被推送到客户端。

+0

所以...如何检查与JavaScript是否有更新即将到来? – 2012-02-13 17:24:22

+1

你会使用AJAX。 PHP执行“后端”工作,即检索新内容,使用Javascript将内容放在页面上。 – VettelS 2012-02-13 17:36:44

+0

做一个谷歌搜索“php彗星聊天”,你会发现这个系统的一系列示例实现。但基本上他们都遵循我所概述的原则。 – VettelS 2012-02-13 17:38:14

4

Node.js的是一种流行的客户端服务器/客户端库,许多利用用于聊天的目的。甚至有自己的源代码http://chat.nodejs.org/

对于类似的概念现场演示没有图书馆,我建议你进入JavaScript的HTML 5套接字http://dev.w3.org/html5/websockets/

+0

我不喜欢使用任何库... – 2012-02-13 16:48:59

+2

然后我建议您熟悉javascript的原生html5套接字功能:http://dev.w3.org/html5/websockets/ – Vigrond 2012-02-13 16:50:40

+0

@JinuJD该库仅作为一个底层框架,您将在其上构建一个聊天服务器,就像您可能使用.NET框架编写一个winforms应用程序一样。使用库没有任何问题! – Polynomial 2012-02-13 16:54:14