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

文章目录

gatewayworker使用说明

gatewayworker里只需要使用Applications\YourApp下的Events.php文件。

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

php 复制代码
<?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就做这些,后续几乎不再动整个文件了。

相关推荐
龙俊杰的读书笔记13 小时前
一文读懂python并发&并行编程--以xinference框架应用为例
开发语言·网络·python
dollmarker13 小时前
vulnhub靶场之hacksudo: 2 (HackDudo)靶机-NFS提权
c语言·网络·网络安全·php
liulilittle13 小时前
递归复制搜索所有的lua文件到指定目录
java·开发语言·lua·cmd
ai大模型中转api测评13 小时前
GPT-5.5 性能深度实测:从 FrontierMath 4 基准看 API 聚合平台在多模态架构中的响应优化
gpt·架构·php
Gofarlic_oms113 小时前
Allegro高级功能模块许可证管理注意事项
运维·服务器·开发语言·matlab·负载均衡
启山智软13 小时前
前沿主流技术栈商城系统(Java JDK21 + Vue3 + Uniapp)
java·开发语言·uni-app
QH1392923188013 小时前
Rohde & Schwarz ZNA43矢量网络分析仪的使用方法
开发语言·php
沐知全栈开发13 小时前
SVG 实例
开发语言
geovindu13 小时前
go: Iterator Pattern
开发语言·设计模式·golang·迭代器模式
他是龙55113 小时前
70:Python安全 & SSTI模板注入 & Jinja2引擎 & 利用绕过 & 工具实战
开发语言·python·安全