#基于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事件中引入逻辑文件实现逻辑的热更新。