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

相关推荐
前端 贾公子2 分钟前
@uni-helper 社区:让 uni-app 拥抱 ESM 时代
开发语言·前端·javascript
弈风千秋万古愁4 分钟前
常见配置文件-AI辅助
开发语言·python
不知名。。。。。。。。5 分钟前
仿muduo库实现高并发服务器-----Channel模块 和 Poller模块
开发语言·前端·javascript
Singe.Chen7 分钟前
C# 配置文件加密解密:最简便的实现方案
开发语言·网络协议·c#·信息与通信
m0_738120727 分钟前
网络安全编程——PHP基础Cookie详细讲解
后端·安全·web安全·前端框架·php
花间相见7 分钟前
【JAVA基础01】——类和对象
java·开发语言·python
●VON8 分钟前
【鸿蒙PC】在 HarmonyOS 上跑 Electron?手把手教你搞定桌面欢迎页!(Mac版)
开发语言·macos·华为·electron·电脑·harmonyos
0 0 08 分钟前
CCF-CSP 37-2 机器人饲养指南(apple)【C++】考点:完全背包问题
开发语言·c++·算法
GIOTTO情9 分钟前
2026小红书投流新规下,基于Infoseek API的媒介投放自动化方案
java·linux·开发语言
im_AMBER12 分钟前
Leetcode 137 组合 | 电话号码的字母组合
开发语言·算法·leetcode·深度优先·剪枝