javascript 实现网络聊天,我如何获得打字状态?

9cbw7uwe  于 2023-01-04  发布在  Java
关注(0)|答案(6)|浏览(103)

有人能说明我如何用JavaScript获得对方的打字状态吗?

    • 更新**

有人能推荐一个一对一的开源聊天应用程序吗,最好是用PHP写的?我只找到了一个开源聊天室,可以在所有在线用户之间聊天,但我只需要一对一的聊天。

cig3rfwq

cig3rfwq1#

下面是PHP-based open-source instant messaging software的列表。
其中一些可能和你有关。

yduiuuwa

yduiuuwa2#

例如,如果您有一个文本区域#chat,则可以使用以下代码附加事件:

document.getElementById('chat').addEventListener('keydown', FUNCTION HERE, false);
pbossiut

pbossiut3#

请在此处查看http流和一些现成的解决方案:http://ajaxpatterns.org/HTTP_Streaming
这就是google talk的工作原理,并且有现成的php或者c++解决方案
这对我来说是一个很大的发现!

3htmauhk

3htmauhk4#

这是一项更新,以反映OP问题的重大变化:
谷歌聊天和Facebook都使用XMPP(jabber)服务器,我所知道的大多数公司都有内部即时消息。
XMPP的好处在于,您可以获得所有的“正在键入”和其他基于presence的信息,而不必使用javascript(请记住,您仍然需要使用javascript将XMPP请求传递回服务器,但XMPP已经内置了您需要的大多数特性)。
看看OpenFire,这是一个很棒的XMPP服务器,完全开源,他们有一个基于Web的Spark客户端版本,非常不错。
或者你可以得到一个XMPP的PHP库(有一些),但是你仍然需要在后台运行XMPP服务器,以便PHP能够工作。
下面是XMPP.org中用于PHP的XMPP库列表:

  • 艾菲尔
  • JAXL公司
  • 莱特
  • 夫人
  • xmpphp

或者,如果你想让东西主要在浏览器端,他们也有一个javascript库的列表:

  • dojox.xmpp
  • js.io
  • JSJaC公司
  • strophe.js
  • 4克重
  • xmpp4js
watbbzwu

watbbzwu5#

不久前我做了一个小的聊天应用程序,唯一的方法就是频繁地检查聊天数据库中的新条目,并获取比上一次显示的消息更新的任何内容。与此同时,您可以检查用户的输入是否为空。如果为空,则什么也不做。如果为空,在用户名旁边输入一个状态代码。当你获取新消息和在线用户的信息时,如果数据库中有任何人具有该状态,您应该显示“用户正在键入”消息。我希望这是有意义的...让我知道如果它不是。

wtzytmuj

wtzytmuj6#

对于User1:如果您将每次按键时的聊天消息保存到数据库,状态为:sent=false并更新上次更新日期。对于User2:你可以周期性地轮询消息的存在,其中sent=false,并使用最后更新来更新用户正在键入的消息。如果最后更新的日期超过十秒,你可以删除该消息,因为那个人可能已经停止键入。这将允许User2看到User1正在键入,停止并再次继续。
理想情况下,对该信息的轮询将是对数据库的现有调用的一部分,以减少额外的开销。

相关问题