PHP code example of kim1ne / socket-server

1. Go to this page and download the library: Download kim1ne/socket-server 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/ */

    

kim1ne / socket-server example snippets


use Kim1ne\InputMessage;
use Kim1ne\Socket\Server\Connection;
use Kim1ne\Socket\Message;
use Kim1ne\Socket\Server\Server;
use Kim1ne\Socket\Server\Transport;

$server = new Server(transport: Transport::WS, port: 2346);

$server->on('connection', function (Connection $connection, Server $server) {
    InputMessage::green('Connected!')
});

$server->on('message', function (Message $message, Connection $connection, Server $server) {
    InputMessage::green("I've got the message!");
});

$server->on('close', function (Server $server) {
    InputMessage::green('Disconnected')
});

$server->on('error', function (\Throwable $throwable) {
    InputMessage::red('Error: ' . $throwable->getMessage());
});

$server->run();

use Kim1ne\Socket\Server\Server;
use Kim1ne\Socket\Server\Transport;

$server = new Server(transport: Transport::TLS, port: 2346, serverContext: [
        "ssl" => [
        "local_cert" => "./certs/server.crt",
        "local_pk" => "./certs/server.key",
        "verify_peer" => false,
        "crypto_method" => STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | STREAM_CRYPTO_METHOD_TLSv1_3_SERVER,
        "disable_compression" => true,
    ]
]);

/**
 * @var \Kim1ne\Socket\Server\Server $server 
 */
$server->sendAll('{message: "The message to all"}');

use Kim1ne\Socket\Server\Connection;

$server->sendChoice('{message: "The message to selected"}', function (Connection $connection) {
    return (int) $connection->get('user_id') === 1;
});

use Kim1ne\Socket\Server\Connection;
use Kim1ne\Socket\Message;
use Kim1ne\Socket\Server\Server;

/**
 * @var \Kim1ne\Socket\Server\Server $server 
 */
$server->on('message', function (Message $message, Connection $connection, Server $server) {
    $message = $message->getDecodeJson();
    
    if ($message['type'] === 'auth') {
        $userId = $message['user_id'];
        $connection->set('user_id', $userId);
    }
})