1. Go to this page and download the library: Download orchid/socket library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
orchid / socket example snippets
$ composer
Orchid\Socket\SocketServiceProvider::class
php artisan vendor:publish
php artisan make:socket MyClass
//routing is based on an Symfony Routing Component
$socket->route('/myclass', new MyClass, ['*']);
php artisan socket:serve
public function onOpen(ConnectionInterface $conn)
{
$this->clients->attach($conn);
//take user id
$userId = $this->getUserFromSession($conn);
//Create a list of users connected to the server
array_push($this->userList, $userId);
//We tell everything that happened
echo "New connection! user_id = ({$userId})\n";
}
public function getUserFromSession($conn)
{
// Create a new session handler for this client
$session = (new SessionManager(App::getInstance()))->driver();
// fix issue https://github.com/laravel/framework/issues/24364
if (Config::get('session.driver') == 'file') {
clearstatcache();
}
// Get the cookies
$cookies = $conn->WebSocket->request->getCookies();
// Get the laravel's one
$laravelCookie = urldecode($cookies[Config::get('session.cookie')]);
// get the user session id from it
$idSession = Crypt::decrypt($laravelCookie);
// Set the session id to the session handler
$session->setId($idSession);
// Bind the session handler to the client connection
$conn->session = $session;
$conn->session->start();
//We take the user from a session
$userId = $conn->session->get(Auth::getName());
return $userId;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.