基于Swoole做Socket服务器开发探索与实现PHP代码热更新机制
2015-06-25 00:00
1016 查看
摘要: 基于Swoole做Socket服务器开发探索与实现PHP代码热更新机制
#基于Swoole做Socket服务器开发
##实现:
1、Socket分组,各组允许设定转发服务器,设定转发服务器后服务器会将该Socket信息转发给设定好的转发服务器,可以设定
2、兼容Socket连接和WebSocket连接,以后尽量兼容HTTP连接
3、热更新机制,允许socket服务器不停机状态下更新处理逻辑
尝试热更新机制:
即Socket服务器持续运行,通过include命令引入外部PHP文件,在不同的时刻触发的include引入文件会发生变化,观察变化是否有效。
服务端代码: s.php
引入文件 handle.php
通过变更b字符串实现不同的输出
测试结果:
12:32:03 发送数据:f[1次]
12:32:03 收到数据:a
12:32:16 发送数据:f[1次]
12:32:16 收到数据:b
通过。
即,可以通过一个Socket监听,在receive事件中引入逻辑文件实现逻辑的热更新。
#基于Swoole做Socket服务器开发
##实现:
1、Socket分组,各组允许设定转发服务器,设定转发服务器后服务器会将该Socket信息转发给设定好的转发服务器,可以设定
2、兼容Socket连接和WebSocket连接,以后尽量兼容HTTP连接
3、热更新机制,允许socket服务器不停机状态下更新处理逻辑
尝试热更新机制:
即Socket服务器持续运行,通过include命令引入外部PHP文件,在不同的时刻触发的include引入文件会发生变化,观察变化是否有效。
服务端代码: s.php
// create a server instance $serv = new swoole_server("0.0.0.0", 9999); // attach handler for connect event, once client connected to server the registered handler will be executed $serv->on('connect', function ($serv, $fd){ echo "Client:Connect.\n"; }); // attach handler for receive event, every piece of data received by server, the registered handler will be // executed. And all custom protocol implementation should be located there. $serv->on('receive', function ($serv, $fd, $from_id, $data) { include 'handle.php'; }); $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); // start our server, listen on port and ready to accept connections $serv->start();
引入文件 handle.php
$serv->send($fd,'b');
通过变更b字符串实现不同的输出
测试结果:
12:32:03 发送数据:f[1次]
12:32:03 收到数据:a
12:32:16 发送数据:f[1次]
12:32:16 收到数据:b
通过。
即,可以通过一个Socket监听,在receive事件中引入逻辑文件实现逻辑的热更新。
相关文章推荐
- 一个关于if else容易迷惑的问题
- java-模拟tomcat服务器
- Linux socket 初步
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- 简单的Ruby中的Socket编程教程
- Socket不能选择本地IP连接问题如何解决