您的位置:首页 > 编程语言 > PHP开发

基于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

// 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事件中引入逻辑文件实现逻辑的热更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息