linux服务器启动websocket,
首先tp6文档composer require topthink/think-worker,安装文档流程来
创建文件Worker类
<?php
namespace app\http;
use think\worker\Server;
use Workerman\Lib\Timer;
class Worker extends Server
{
protected $socket = 'websocket://0.0.0.0:9501';
/**
* 收到信息
* @param $connection
* @param $data
*/
public function onMessage($connection, $data)
{
// echo '后台收到前台的信息';
echo $data;
// 定时器,每隔1秒向客户端发送一条消息
$timer_id = Timer::add(1, function () use ($connection, $data) {
$connection->send($data);
});
// 将定时器ID保存到连接对象中
$connection->timer_id = $timer_id;
// $connection->send('我收到你的信息了,后台收到前台的信息了');
}
/**
* 当连接建立时触发的回调函数
* @param $connection
*/
public function onConnect($connection)
{
$connection->send('欢迎连接到服务器!');
}
/**
* 当连接断开时触发的回调函数
* @param $connection
*/
public function onClose($connection)
{
// 检查是否存在 timer_id 属性
if (isset($connection->timer_id)) {
// 清除定时器
Timer::del($connection->timer_id);
}
}
/**
* 当客户端的连接上发生错误时触发
* @param $connection
* @param $code
* @param $msg
*/
public function onError($connection, $code, $msg)
{
echo "error $code $msg\n";
}
/**
* 每个进程启动
* @param $worker
*/
public function onWorkerStart($worker)
{
}
}
在worker_server目录下添加就是上面的文件位置
linux上启动
[root@iZuf6c3mmbenhfqyn7o9lfZ building-cloud-platform]# php think worker:server start
apipost访问服务器websocket一直访问不上
问题解决:只 宝塔端口开发9501没有,服务器也要开启