-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Ruslan
committed
Jun 21, 2016
1 parent
cad0b2d
commit 312a918
Showing
4 changed files
with
83 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: yarullin | ||
* Date: 21.06.2016 | ||
* Time: 21:13 | ||
*/ | ||
|
||
require_once '../autoload.php'; | ||
|
||
// массив конфигурации общий для сервера и клиента, все опции в конфигурации указаны по умолчанию | ||
$config = [ | ||
'socket_domain' => AF_INET, // IPv4 протокол (при создании соединения используется TCP), можно изменить на AF_UNIX, если обмен данными будет происходит в пределах одной операционной системы | ||
'socket_address' => '127.0.0.1', // локальный IP адрес. для AF_UNIX соединения используется путь к файлу сокета | ||
'socket_port' => '8082', // прослушиваемый порт для входящих соединений (для AF_UNIX) | ||
'socket_reconnect' => false, // true для автоматического переподключения при обрыве соединения. | ||
]; | ||
$server = new \Esockets\Server($config); | ||
if (!$server->connect()) { | ||
echo 'Не удалось запустить сервер!'; | ||
exit; | ||
} | ||
$client = new Esockets\Client($config); // передаем конфигурацию, такую же, как для сервера | ||
if ($client->connect()) { | ||
error_log('успешно соединился!'); | ||
} | ||
// назначаем обработчик для новых входящих соединений. при соединении клиента к серверу будет вызван переданный обработчик | ||
$server->onConnectPeer(function ($peer) { | ||
/** | ||
* @var $peer \Esockets\Peer | ||
*/ | ||
error_log('Принял входящее соединение ' . $peer->getAddress() . ' !'); | ||
// назначаем обработчик для чтения данных от присоединившегося клиента. при получении данных от подключенного клиента будет вызван переданный обработчик | ||
$peer->onRead(function ($msg) use ($peer) { | ||
/** | ||
* @var $this \Esockets\Peer | ||
*/ | ||
error_log('Получил сообщение от ' . $peer->getAddress() . ' ' . $msg . ' !'); | ||
}); | ||
// назначаем обработчик для отсоединения клиента от сервера. этот обработчик будет вызван при отсоединении клиента | ||
$peer->onDisconnect(function () use ($peer) { | ||
error_log('Клиент ' . $peer->getAddress() . ' отсоединился от сервера'); | ||
}); | ||
}); | ||
|
||
// прослушиваем входящие соединения | ||
$server->listen(); // метод запускает обнаружение новых входящих соединений на сервере | ||
$client->send('HELLO WORLD!'); // метод возвращает true в случае успешной отправки, иначе false | ||
|
||
$server->read(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters