• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javascript – 想做一个类似于QQ的网页版聊天功能,如何实现??

php 搞代码 3年前 (2022-01-23) 28次浏览 已收录 0个评论
文章目录[隐藏]

制作网页版聊天工具的时候,大家通常是用什么方式来进行实时消息传递的??

我所知道的 :

  1. ajax轮询(都说浪费资源,不好…)

  2. EventSource(支持不好,IE压根不支持..)

  3. WebSoket(不是很了解…)

而且,百度搜索后了解到在浏览器不支持 WebSocket 的情况下,居然还有第三方库能够实现 WebSocket ,是否所谓的 WebSocket 也是如同 EventSource 一样,核心原理都是用 ajax 的轮询方式实现即时通信??

目前普遍在用的网页实时通信技术是什么??小白求教,求大神空降…

回复内容:

制作网页版聊天工具的时候,大家通常是用什么方式来进行实时消息传递的??

我所知道的 :

  1. ajax轮询(都说浪费资源,不好…)

  2. EventSource(支持不好,IE压根不支持..)

  3. WebSoket(不是很了解…)

而且,百度搜索后了解到在浏览器不支持 WebSocket 的情况下,居然还有第三方库能够实现 WebSocket ,是否所谓的 WebSocket 也是如同 EventSource 一样,核心原理都是用 ajax 的轮询方式实现即时通信??

目前普遍在用的网页实时通信技术是什么??小白求教,求大神空降…

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
git仓库:https://github.com/walkor/Wor…
中文主页:http://www.workerman.net/
中文文档:http://doc3.workerman.net/

题主可以试试这个。

说两个PHP的方案,其中之一的WorkerMan已经有人说了,另一个就是峰哥基于Swoole开发的PHPWebIM.

PECL扩展Swoole支持使用PHP来编写高性能的socket应用:

<code>apt-get install php-pear php5-devyum install php-pear php-develpecl remote-info swoolepecl install swoole</code>

PHPWebIM是Swoole官方基于PHP Swoole扩展和Swoole Framework开发的WebSocket网页即时聊天工具.
PHPWebIM支持WebSocket+Comet两种协议,可用于所有种类的浏览器包括IE,请看Demo.

如果只是实现比较实时的消息通知,也可以用AJAX轮询:
1)单页面(只在一个页面做轮询)
2)setInterval间隔被动轮询(keep-alive持久连接,比如30秒)
3)window.onfocus窗口获得焦点主动触发(event-driven)
轮询间隔时间过短,用户打开页面过多,可能会导致服务器压力过大.
对于实时性要求不高的业务,可以把间隔时间加大,比如2分钟轮询1次.

<code>window.onblur  = function() {document.title = '失<mark>@本文来源gaodaimacom搞#代%码@网-</mark><strong>搞代gaodaima码</strong>去焦点';};window.onfocus = function() {document.title = '获得焦点';};</code>

我以前用nodejs socket.io写过一个,直接搜,就有好多别人写的例子:http://www.open-open.com/lib/…

楼上正解。

案例地址:http://www.workerman.net/

<body>

websocket肯定不是通过ajax实现的.
用websocket肯定是最完美的, 可以通过workerman, react, swoole这类框架配合实现.
用长轮询也可以, 不过比较耗资源. 但是实现成本比websocket低.
还有就是实时轮询, 实现成本最低. 不过效率肯定是最低的, 像SF的消息提醒就是用的定时轮询


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javascript – 想做一个类似于QQ的网页版聊天功能,如何实现??

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址