![]() |
1
7
你可能还想调查一下 Comet . other chat applications . 几年前,当我尝试它时,没有太多的库或关于服务器体系结构的细节来实现它,但现在看起来有更多的东西。 看一看这本书 cometd |
![]() |
2
5
XMPP通过波什 当别人有消息时,没有必要发明自己的消息格式和传输协议。如果您尝试,它将慢慢变得像BOSH一样复杂,但没有第三方库支持或标准化的好处。 |
![]() |
3
3
如果你不喜欢HTTP轮询的想法,你可以在聊天页面上有一个Flash电影,它与服务器上的某个deamon有一个固定的连接,然后Flash电影会调用客户端上的JavaScript函数,在出现新消息时更新聊天。(除非您希望聊天时使用Flash界面.) |
![]() |
4
2
BOSH是通过HTTP传输XMPP的标准。它涉及Comet将数据推送到客户端。 |
![]() |
6
1
诀窍是要意识到,你的应用程序在服务器上调用CGI的唯一时间就是有人说了什么。对于常规轮询,轮询一个静态页面,每当有新聊天时,CGI脚本都会更新该页面。使用HEAD请求,将时间戳与上次看到的时间戳进行比较,并且仅在这些时间戳发生变化时执行完整GET。我用这种方式实现了一个简单的朴素聊天应用程序,对于我们同时拥有的几十个用户来说,负载和带宽的使用可以忽略不计。 |
![]() |
7
1
几个月前,我也做了同样的事情,只是在玩弄这些概念。实际上我用的是 forever-frame 下面的代码是我的“comet”js文件,其中包含获得“party chat”设置所需的一般概念。
|
![]() |
8
0
我以为每个人都用cometd来做这类事情。 |
![]() |
9
0
我同意约翰的观点。但还有一个问题没有得到回答。
编辑:顺便说一句,当我接到电话时,戈达迪听上去不那么好笑。 |
![]() |
10
0
我认为投票是最简单的方法,我建议先这样做。如果负载成为问题,开始研究更复杂的技术。
这里有一个很好的正反两方面的讨论-
http://www.infoq.com/news/2007/07/pushvspull
|
![]() |
11
0
结账 Speeqe open-source solution 用于在后台使用BOSH和XMPP的基于Web的聊天室。 |
![]() |
12
0
我刚刚发现这篇文章,它很古老,但投票的概念给很多人带来了麻烦。因此,我将在这里给出一个实现示例。但在给你之前,我应该给你一个让我很生气的建议: 当你投票时,你应该注意你的行为( race conditions )。为了简单起见:如果打开会话,会话文件将被锁定,直到会话关闭,以避免两个磁带将不同的数据写入其中。因此,如果需要会话来检查用户是否已登录,请在轮询之前始终关闭会话。 我的演示为您提供了一个PHP轮询实现的示例。我不会使用数据库,而是使用文件。当您单击轮询按钮时,您将进入循环,直到文件被修改,您将保持轮询状态。填写表单并单击“发布”时,键入的内容将保存到文件中。文件的修改时间将更改,因此轮询将停止。 现在让我们用比我的英语更好的语言说:
here |
![]() |
Roronoa Zoro · 升级openfire时的数据库 7 年前 |
![]() |
Crutz · JavaFx聊天文本字段和按钮键侦听器 7 年前 |
![]() |
Ryan Murphy · 使用套接字架构的聊天应用程序。 7 年前 |
![]() |
ÇaÄdaÅ Tunca · ConverseJS过滤器触点 7 年前 |
![]() |
Branko · 正在尝试为我的浏览器游戏创建聊天室 7 年前 |
![]() |
Pat · 我可以在mqtt服务器上编辑消息吗? 7 年前 |
![]() |
Shahrzad · MQTT中内容类型的已知方式 7 年前 |