Использую библиотеку walkor/Workerman для создания websocket.
Также у этого разработчика есть библиотека Workerman\Mysql\Connection для живого подключения к бд.
Может кто работал с этим поможет.
require_once("workerman/vendor/autoload.php");
require_once("mysql/vendor/autoload.php");
// SSL context.
$context = array(
'ssl' => array(
'local_cert' => '/your/path/of/server.pem',
'local_pk' => '/your/path/of/server.key',
'verify_peer' => false,
)
);
// Create a Websocket server with ssl context.
$ws_worker = new Worker('websocket://0.0.0.0:2346', $context);
$db = new Workerman\MySQL\Connection('host', "port", "user", "pass", "dbname");
// Enable SSL. WebSocket+SSL means that Secure WebSocket (wss://).
// The similar approaches for Https etc.
$ws_worker->transport = 'ssl';
$ws_worker->onMessage = function ($connection, $data) {
$query = $db->row("query text");
// Send hello $data
$connection->send('Hello ' . $data);
};
Worker::runAll();
Так при подключении клиента и получении сообщения, т.е onMessage, выводит ошибку что db = null
require_once("workerman/vendor/autoload.php");
require_once("mysql/vendor/autoload.php");
// SSL context.
$context = array(
'ssl' => array(
'local_cert' => '/your/path/of/server.pem',
'local_pk' => '/your/path/of/server.key',
'verify_peer' => false,
)
);
// Create a Websocket server with ssl context.
$ws_worker = new Worker('websocket://0.0.0.0:2346', $context);
$db = new Workerman\MySQL\Connection('host', "port", "user", "pass", "dbname");
$query1 = $db->row("query text");
// Enable SSL. WebSocket+SSL means that Secure WebSocket (wss://).
// The similar approaches for Https etc.
$ws_worker->transport = 'ssl';
$ws_worker->onMessage = function ($connection, $data) {
$query2 = $db->row("query text");
// Send hello $data
$connection->send('Hello ' . $data);
};
Worker::runAll();
Если проверить и сделать запрос вначале, то в query1 он вернет то что нужно, но в функциях(query2) выйдет та же ошибка
Куда правильно его вставить?