php+websocket+layIm实现即时通讯、单聊、群聊、分组等功能

本文介绍如何使用PHP和WebSocket技术,结合layIM实现即时通讯功能,包括单聊、群聊以及右键菜单增强交互。通过此系统,用户可以享受到流畅的实时通信体验。
摘要由CSDN通过智能技术生成

如有疑问,欢迎打扰~~~~~

php + websocket 实现即时通讯。

右键菜单功能。

 群聊功能以及右键菜单功能

<?php
namespace app\server\controller;
use think\worker\Server;
use think\Session;
use Workerman\Lib\Timer;
// 心跳间隔55秒
define('HEARTBEAT_TIME', 55);
define('CHECK_HEARTBEAT_TIME', 10); // 检查连接的间隔时间

class Worker extends Server
{
    protected $socket = 'websocket://www.tp5.com:2346';
    protected $processes = 1;
    protected $uidConnections = array();
    static $count  = 0;

    /**
     * 收到信息
     * @param $connection
     * @param $data
     */
    public function onMessage($connection, $data)
    {
        // 判断当前客户端是否已经验证,既是否设置了uid,设置了直接发送消息,未设置第一次为设置uid
        dump('开始');
        $connection->lastMessageTime = time();
        if(!isset($connection->uid))
        {
            $uid = json_decode($data,true);
            if ($uid['message_type'] == 'event'){
                dump($uid);
                switch ($uid['type']){
                    case 'sendOrder':
                        $arr = [
                            'message_type'  => 'event',
                            'type'          => 'sendOrder',
                            'username'      => $uid['username'],
                            'imgUrl'        => $uid['imgUrl'],
                            'info'          => $uid['info'],
                        ];
                        $receipt = json_encode($arr,JSON_UNESCAPED_UNICODE );
                        break;
                    case 'online':
                        $arr = [
                            'message_type'  => 'event',
                            'type'          => 'online',
                            'username'      => $uid['username'],
                        ];
                        $receipt = json_encode($arr,JSON_UNESCAPED
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP写得及时聊天工具,结构设计的很好,有源码。是学习PHP的好资料 JeCat-Jabber(简称:JJ) 是一款完全由 PHP 开发的即时通讯软件。JJ 采用 Gtk2 图像界面库来实现用户界面。顾名思义 JJ 使用 Jabber 协议(XMPP) ,因此可以 和 包括 GTalk 在内的 其它任何 XMPP 即时通讯软件 聊天。 JJ 项目的初衷在于 演示 桌面窗口 和 PHP 多任务处理,这两大 在长期在 PHP程序员 眼中 几乎是“不可能”的任务。 同时 也是 PHP框架 JCAT 的演示项目,JCAT 是一款同时 支持 Web 和 桌面 的 PHP框架,按照计划 将在稍后 发布。 JJ 的特点 > 跨平台。JJ 在Linxu 环境下 开发,在 Windows 平台上也一样可以正常使用。 > 实用 标准的 XMPP协议,能够与其它的 Jabber 软件互相通讯,例如 Google GTalk、Pidgin、PSI、Spark、Pandion,以及其它的 Jabber网页聊天窗口 > 可更换界面皮肤,皮肤样式文件 采用 类似 CSS 的语法,便于美工独立工作。 > 纯 PHP 实现,从 通讯协议 到 图形界面,全部都由 PHP 开发,如果你正好是一名 PHP 程序员,你可以驾轻就熟地在 JJ 之上进行二次开发。 > 可整合到你的网站中。JJ 近期的完善 会使 JJ 更容易地 为你的网站所有,让你的网站 也可以有像 淘宝旺旺 那样的 专用聊天工具 [ PHP 图像界面 ] JJ 采用 Gtk图像界面库,Gtk库 中 提供了丰富的 图形界面窗体(Widget),以及灵活方便的 窗体布局方式。 Gtk 本身 被广泛应用在 Linux 平台上,Linux 最著名 的桌面环境之一 Gnome 即是众多 Gtk软件 的集中展示。 PHP-Gtk2 将 Gtk 窗体绑定到 PHP 语言中,允许程序员 通过 PHP语言 来创建、显示、销毁 Gtk 窗体。PHP-Gtk 项目由 PHP创始人 亲自负责,并且自项目创立一来 一直持续发展,目前已经支持 最新的 Gtk2。 [ PHP 多任务处理 ] PHP 直到 5.2都没有提供 稳定可靠的 多线程特性。 但 PHP 仍然有能力进行多任务处理。 多线程 因为涉及到 线程安全、线程同步 等 困难,在 支持线程的语言中,也常常建议尽量避免使用。 Linux 的多路复用 是 更稳定和安全的 多任务模式,从 PHP5.0 开始 多路复用 支持 Windows 平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值