Code Monkey home page Code Monkey logo

customer's Introduction

customer

打算做开源的客服系统的项目...........
由于利用 晚上时间,且是一个月的时间内初步完成,项目还有很多不足处,后期会慢慢优化。
初步支持:
1:初步实现了命令参数式控制
2:进程控制及监控
3:测试websocket及基于文本的进程间通信
4:模块间的划分
5:定时器任务
php index.php /chat/multi/work stop
  php index.php /chat/multi/work restart
php 进程及网络框架
这是个个人项目,而且现在的代码还是很粗糙,但是不妨碍你做一些常驻进程的事情。打算做开源的客服系统的项目。起始于17年年初,花了一个月的下班晚上时间写的项目,后续在个人精力允许下持续改进。感谢workerman,swoole,reactphp这些优秀的PHP项目
这个项目做了这些工作
在编写项目中学习到了以下知识
1:多进程编程及进程间IPC通信
基于多进程服务模式:leader-follower做一些常驻进程的服务,MQ客户端,生产及消费者【做大批量数据迁移的特别有用】
2:了解了websocket协议等
写了一个简单的websocket协议处理类,及简单的文本协议处理,在此项目中 协议类统一在customer/Lib/Protocol 目录下
写一个基于websocket协议在线聊天demo,由于是多进程监听端口,在不同进程间的需要通信解决方案是放在redis的list里当作集合使用,有主进程消费队列,来分发到子进程,实现不同进程间的用户消息互通。在同一个进程间的直接发送消息到客户端【个人就一台阿里低配ECS】。构建高并发的消息服务:前端有个网关层用于维护客户端链接, 有一个注册中心,一个处理业务逻辑的集群。业务消息基于json结构:用户数据定义:
uid为redis键值对key
包含信息
name姓名
status 状态
                pid 所在进程ID
                IP 所在服务器IP
3:了解解决了TCP 流的粘包问题测试了websocket,基于换行符的文本消息协议

  项目目录:<br/>

       application 主要是项目代码及业务逻辑代码.基于mvc机制        customer/Lib 基础类库
       Queue:队列类,提供了基于msg扩展的一个队列可以在同一服务器间夸进程传递消息,和基于redis的list的一个队列
       Db:数据库类
Connect:Tcp,Udp处理链接类
Events:libevent,event,select的事件库
       Protocol:消息协议类,websocket,text
       index.php 入口类

customer's People

Contributors

lihongsheng avatar

Stargazers

 avatar seefuture_lee avatar

Watchers

 avatar

Forkers

seefuturelee

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.