美文网首页
layim配置文档

layim配置文档

作者: 回眸淡然笑 | 来源:发表于2019-05-16 10:07 被阅读0次

    1、数据库配置

    在文件目录的application下的全局数据库配置文件 database.php

        // 数据库类型
        'type'           => 'mysql',
        // 服务器地址
        'hostname'       => '127.0.0.1',
        // 数据库名
        'database'       => 'layim',
        // 用户名
        'username'       => 'root',
        // 密码
        'password'       => 'root',
    
    

    如果你的模块使用了不同的数据库信息,那么可以单独配置每个模块的数据库信息,如index模块


    QQ截图20190516092743.jpg

    2、系统目录结构说明

    project  应用部署目录
    ├─application           应用目录(可设置)
    │  ├─common             公共模块目录(可更改)
    │  ├─index              模块目录(可更改)
    │  │  ├─config.php      模块配置文件
    │  │  ├─common.php      模块函数文件
    │  │  ├─controller      控制器目录
    │  │  ├─model           模型目录
    │  │  ├─view            视图目录
    │  │  └─ ...            更多类库目录
    │  ├─command.php        命令行工具配置文件
    │  ├─common.php         应用公共(函数)文件
    │  ├─config.php         应用(公共)配置文件
    │  ├─database.php       数据库配置文件
    │  ├─tags.php           应用行为扩展定义文件
    │  └─route.php          路由配置文件
    ├─extend                扩展类库目录(可定义)
    ├─public                WEB 部署目录(对外访问目录)
    │  ├─static             静态资源存放目录(css,js,image)
    │  ├─index.php          应用入口文件
    │  ├─router.php         快速测试文件
    │  └─.htaccess          用于 apache 的重写
    ├─runtime               应用的运行时目录(可写,可设置)
    ├─vendor                第三方类库目录(Composer)
    ├─thinkphp              框架系统目录
    │  ├─lang               语言包目录
    │  ├─library            框架核心类库目录
    │  │  ├─think           Think 类库包目录
    │  │  └─traits          系统 Traits 目录
    │  ├─tpl                系统模板目录
    │  ├─.htaccess          用于 apache 的重写
    │  ├─.travis.yml        CI 定义文件
    │  ├─base.php           基础定义文件
    │  ├─composer.json      composer 定义文件
    │  ├─console.php        控制台入口文件
    │  ├─convention.php     惯例配置文件
    │  ├─helper.php         助手函数文件(可选)
    │  ├─LICENSE.txt        授权说明文件
    │  ├─phpunit.xml        单元测试配置文件
    │  ├─README.md          README 文件
    │  └─start.php          框架引导文件
    ├─build.php             自动生成定义文件(参考)
    ├─composer.json         composer 定义文件
    ├─LICENSE.txt           授权说明文件
    ├─README.md             README 文件
    ├─think                 命令行入口文件
    

    3、workerman 目录说明

    vendor
    ├─App
    │  ├─Event.php                废弃文件,无用
    ├─Config
    │  ├─Db.php                    workerman数据库配置信息
    ├─Init
    │  ├─Events.php                 workman业务层代码
    │  ├─start.php                  workman启动脚本
    │  ├─start_gateway.php          gateway进程启动脚本,包括端口号等设置
    │  ├─start_businessworker.php   businessWorker进程启动脚本
    │  ├─start_register.php        注册服务启动脚本          
    ├─start_for_win.bat            win系统下启动脚本
    ...
    

    3.1workerman 配置

    Db.php

    各参数参考database.php来进行配置
        public static $db1 = array(
            'host'    => '127.0.0.1',
            'port'    => 3306,
            'user'    => 'root',
            'password' => 'root',
            'dbname'  => 'layim',
            'charset'    => 'utf8'
        );
    

    start_businessworker.php

    <?php
    // 自动加载类
    require_once __DIR__ . '/../../../autoload.php';
    use \Workerman\Worker;
    use \GatewayWorker\BusinessWorker;
    
    // bussinessWorker 进程
    $worker = new BusinessWorker();
    // worker名称
    $worker->name = 'ChatBusinessWorker';
    // bussinessWorker进程数量
    $worker->count = 4;
    // 服务注册地址
    //如果不是本地运行,请修改为你实际服务器内网地址
    $worker->registerAddress = '127.0.0.1:1237';
    $worker->eventHandler = 'Events';
    // 如果不是在根目录启动,则运行runAll方法
    if(!defined('GLOBAL_START'))
    {
        Worker::runAll();
    }
    

    start_gateway.php

    // 设置进程数,gateway进程数建议与cpu核数相同
    $gateway->count = 4;
    // 分布式部署时请设置成内网ip(非127.0.0.1)
    $gateway->lanIp = '127.0.0.1';//本地运行,可不修改
    // 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
    // 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 
    $gateway->startPort = 4000;
    // 心跳间隔
    $gateway->pingInterval = 50;
    //客户端必须定时发送心跳给服务端,否则pingNotResponseLimit*pingInterval秒内没有任何数据发来则关闭对应连接,并触发onClose
    $gateway->pingNotResponseLimit = 0;
    
    // 服务端定时向客户端发送的数据
    $gateway->pingData = '{"type":"ping"}';
    // 服务注册地址,同$gateway->lanIp
    $gateway->registerAddress = '127.0.0.1:1237';
    

    start_register.php无需做修改

    3.2、workerman启动方式

    如果你是在windows上运行的话,直接双击/vendor/workerman/Conf/start_for_bat.bat即可 如果你是在linux或mac上运行的话,请进入/vendor/workerman/application/Init目录,然后运行

    php start.php start -d
    

    workerman相关命令

    开启服务 命令如下 启动 以debug(调试)方式启动
    
    php start.php start
    
    以daemon(守护进程)方式启动
    
    php start.php start -d
    
    停止 php start.php stop
    
    重启 php start.php restart
    
    平滑重启 php start.php reload
    
    查看状态 php start.php status
    
    查看连接状态 php start.php connections
    

    3.3、注意事项

    1.如果是在云服务器运行,那么请开放workerman 的gateway 进程端口8282
    2.如果在linux服务器运行,请对runtime目录以及public/uploads目录 777权限
    (chmod -R 777 runtime / chmod -R 777 public/uploads)
    3.当全部启动成功后在浏览器访问IP:8282能看到如下信息,则代表服务启动成功

    400 Bad Request
    Sec-WebSocket-Key not found.
    This is a WebSocket service and can not be accessed via HTTP.
    See http://wiki.workerman.net/Error1 for detail.

    如果启动失败,对照官方手册排查
    http://doc.workerman.net/faq/workerman-start-fail.html

    4、前端相关设置

    4.1 soeket配置

    1) 在前端首页layim\application\index\view\index\index.html以及相关需要调用socket进行通讯的页面进行如下初始化new WebSocket('ws://IP:8282');
    2) socket相关api

    socket.onopen = function(){} //连接成功时触发
        
    socket.onmessage = function(res){ }//监听收到的消息
    socket.send(data); //发送消息
    

    4.2 layim相关初始化

    在index.html中的js进行layim的初始化配置

    layim.config({
    
        //获取主面板列表信息
        init: {
          url: "{:url('index/getList')}" //接口地址(返回的数据格式见下文)
          ,type: 'get' //默认get,一般可不填
          ,data: {} //额外参数
        }
        //获取群员接口
        ,members: {
          url: "{:url('index/getMembers')}" //接口地址(返回的数据格式见下文)
          ,type: 'get' //默认get,一般可不填
          ,data: {} //额外参数
        },
        uploadFile: {
            url: "{:url('upload/uploadFile')}"
        }
        ,uploadImage: {
            url: "{:url('upload/uploadimg')}"
        }
        ,brief: false //是否简约模式(默认false,如果只用到在线客服,且不想显示主面板,可以设置 true)
        ,title: '我的LayIM' //主面板最小化后显示的名称
        ,maxLength: 3000 //最长发送的字符长度,默认3000
        ,isfriend: true //是否开启好友(默认true,即开启)
        ,isgroup: true //是否开启群组(默认true,即开启)
        ,right: '0px' //默认0px,用于设定主面板右偏移量。该参数可避免遮盖你页面右下角已经的bar。
        ,chatLog: "{:url('Chatlog/index')}" //聊天记录地址(如果未填则不显示)
        ,find: "{:url('findgroup/index')}" //查找好友/群的地址(如果未填则不显示)
        ,copyright: false //是否授权,如果通过官网捐赠获得LayIM,此处可填true
    });
    

    更多请查看源码

    相关文章

      网友评论

          本文标题:layim配置文档

          本文链接:https://www.haomeiwen.com/subject/inkbaqtx.html