1.使用composer require workerman/workerman-for-win安装workerman
2.在项目根目录配置启动文件,这里命名为server.php,如下:
- 后端代码:
设置心跳值(客户端长时间没有连接所设置的超时的时间)
首次连接:
发送消息($data是前端传过来的数据),在这里面可以处理各种逻辑处理:
public function onMessage($connection, $data, $time)
{
$connection->send('我收到你的信息了');
//定时器
$connection->timer = $time;
$connection->timer_id = Timer::add(1, function () use ($connection, $time) {
$connection->timer--;
//判断是否超时
if ($connection->timer <= 0) {
//已超时,断开连接
$connection->close();
} else {
//未超时 ,处理
$connection->send(return_json(1000, 'ok'));
}
}
4.前端代码
安装event扩展:
centos系统
1、安装event扩展依赖的libevent-devel包,命令行运行
yum install libevent-devel -y
2、安装event扩展,命令行运行
(event扩展要求PHP>=5.4)
pecl install event
注意提示:Include libevent OpenSSL support [yes] : 时输入no回车,其它直接敲回车就行
3、命令行运行(如果ini文件位置不对,可以通过运行php --ini找到实际加载的ini文件路径)
echo extension=event.so > /etc/php.d/30-event.ini
(如果出现pecl找不到的问题,请先yum install -y php-devel php-pear httpd-devel)
workerman 使用https协议:
客户端这样使用:
服务端访问(对应的证书是客户端访问的域名的证书):
需要注意的是要在防火墙里配置加上8000的端口,并在该服务器IP的安全组中设置8000端口