当前位置: 首页 > article >正文

PHP框架+gatewayworker实现在线1对1聊天--gatewayworker说明(2)

文章目录

    • gatewayworker使用说明
    • onConnect 说明

gatewayworker使用说明

gatewayworker里只需要使用Applications\YourApp下的Events.php文件。
在这里插入图片描述

对文件的代码进行一下改造,如下,我们只需要用到onConnect方法,写法固定,其他方法都是空的。

<?php

use \GatewayWorker\Lib\Gateway;

/**
 * 主逻辑
 * 主要是处理 onConnect onMessage onClose 三个方法
 * onConnect 和 onClose 如果不需要可以不用实现并删除
 */
class Events
{
    /**
     * 当客户端连接时触发
     * 如果业务不需此回调可以删除onConnect
     * 
     * @param int $client_id 连接id
     */
    public static function onConnect($client_id)
    {
        // 向当前client_id发送数据 
        Gateway::sendToClient($client_id, json_encode(array(
            'type'      => 'init',
            'client_id' => $client_id
        )));
       
    }
    
   /**
    * 当客户端发来消息时触发
    * @param int $client_id 连接id
    * @param mixed $message 具体消息
    */
   public static function onMessage($client_id, $message)
   {
       
   }
   
   /**
    * 当用户断开连接时触发
    * @param int $client_id 连接id
    */
   public static function onClose($client_id)
   {
     
   }
}

onConnect 说明

当有websocket连接连上gatewayworker服务器的时候,就会把gatewayworker创建的客户端client_id给返回去。type是自己定义的一个类型。发消息会有不同的类型,文本,图片,表情。init作为初始化的代表。根据不同的类型,我们会进行不同的处理。

Events.php就做这些,后续几乎不再动整个文件了。


http://www.kler.cn/a/464484.html

相关文章:

  • 离散数学 期末笔记
  • 【机器学习:二、线性回归模型】
  • 软考 高级 架构师 第十 章软件工程3
  • DC-2 靶场渗透
  • 安卓11 SysteUI添加按钮以及下拉状态栏的色温调节按钮
  • 超高分辨率 图像 分割处理
  • 怎么免费查询企业的行政监管信息?
  • 入门嵌入式(二)——中断
  • 设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
  • CPO-SVMD分解 | Matlab实现CPO-SVMD豪猪算法优化逐次变分模态分解
  • 图像概念与分类
  • Linux下Shell编程之ps命令详解及示例
  • std optional 的使用
  • Redis--高可用(主从复制、哨兵模式、分片集群)
  • commit 错分支的一些补救操作
  • uni-app 多平台分享实现指南
  • 【Unity3D】ECS入门学习(十)NativeContainer、EntityCommandBuffer、CompleteDependency
  • el-table树形懒加载展开改为点击行展开
  • SAP财务凭证的更改、冲销的方式
  • python: generate model and DAL using Oracle
  • 【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用
  • 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)
  • Springboot使用RabbitMQ实现关闭超时订单的一个简单示例
  • 【面试】深入理解 JavaScript 中的 Object.freeze()
  • k8s部署juicefs
  • SpringBoot教程(十四) SpringBoot之集成Redis