aysheka/socket

此包最新版本(dev-master)没有可用的许可信息。

dev-master 2014-04-24 12:39 UTC

This package is auto-updated.

Last update: 2024-08-29 03:56:48 UTC


README

注意

  1. 该库仅在TCP、IP4、Stream连接上进行测试
  2. 你可以在测试目录中找到示例(服务器,客户端)

如何连接到服务器

<?php
use Symfony\Component\EventDispatcher\EventDispatcher;
use Aysheka\Socket\Client\Client;
use Aysheka\Socket\Address\IP4;
use Aysheka\Socket\Type\Stream;
use Aysheka\Socket\Transport\TCP;

$client = new Client('127.0.0.1', 8089, new IP4(), new Stream(), new TCP(), new EventDispatcher());
$client->connect();
$client->close();`

就这样

如何创建服务器

use Aysheka\Socket\Client;
use Aysheka\Socket\Type\Stream;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Aysheka\Socket\Server\Event\NewConnectionEvent;
use Aysheka\Socket\Server\Server;
use Aysheka\Socket\Address\IP4;
use Aysheka\Socket\Transport\TCP;

$eventDispatcher = new EventDispatcher();

$eventDispatcher->addListener(NewConnectionEvent::getEventName(), function (NewConnectionEvent $event) {

    $socket = $event->getSocket();

    $socket->write("HELLO I'm test server\n");

    // Read bytes from socket if available
    while ($read = $socket->read()) {
        echo "Read data: [{$read}]";
        $socket->write('Response');
        usleep(50);
    }
});


$server = new Server('127.0.0.1', 8089, new IP4(), new Stream(), new TCP(), $eventDispatcher);

$server->create();