22

单独构建一个im服务,脱离swoostar

swocloud

- config

- swocloud.php

- bin

- swocloud

- src

- Route.php

- tests

- composer.json

 

可运行的route服务

22

* 1. 检测IM-server的存活状态

* 2. 支持权限认证

* 3. 根据服务器的状态,按照一定的算法,计算出该客户端连接到哪台IM-server,返回给客户端,客户端再去连接到对应的服务端,保存客户端与IM-server的路由关系

* 4. 如果 IM-server宕机,会自动从Redis中当中剔除

* 5. IM-server上线后连接到Route,自动加 入Redis(im-server ip:port)

* 6. 可以接受来自PHP代码、C++程序、Java程序的消息请求,转发给用户所在的IM-server

* 7. 缓存服务器地址,多次查询redis

 

22

22

 

22

所有服务的父类, 写一写公共的操作

 

 

22

 

22

 

 

22

 

22

 

添加一个启动类

22

Im-server在启动的时候就需要加载route服务

那么这个IM-Server相对于Route来说就是一个客户端;同时还需要做的间断性的发送信息,以保持来接;

 

22

 

22

 

Swostar集成事件处理

22

事件注册

事件触发

22

处理event监听事件注册

 

22

 

22

注册事件,可以放在application中

22

 

22

 

Route写到缓存里面

 

构建基本的路由服务

 

对于这个服务注意我们是需要单独出来

为什么?因为对于swostar就相当于是一个单独的小项目,也就是可以单独构建一个im服务;如果在其中再集成一个这样的路由服务则并不是很好操作;所以我们需要独立出来;其实也可以不独立,这取决与开发者

对于Route服务其实就是需要创建websocket的服务端,而对于其他协议我们可以添加多协议监听即可实现;

22

 

* 1. 检测IM-server的存活状态

* 2. 支持权限认证

* 3. 根据服务器的状态,按照一定的算法,计算出该客户端连接到哪台IM-server,返回给客户端,客户端再去连接到对应的服务端,保存客户端与IM-server的路由关系

* 4. 如果 IM-server宕机,会自动从Redis中当中剔除

* 5. IM-server上线后连接到Route,自动加 入Redis(im-server ip:port)

* 6. 可以接受来自PHP代码、C++程序、Java程序的消息请求,转发给用户所在的IM-server

* 7. 缓存服务器地址,多次查询redis