Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cbl/php-pusher
Php Package to create a Simple Websocket Pusher.
https://github.com/cbl/php-pusher
Last synced: 13 days ago
JSON representation
Php Package to create a Simple Websocket Pusher.
- Host: GitHub
- URL: https://github.com/cbl/php-pusher
- Owner: cbl
- Created: 2017-06-19T15:04:18.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-07-15T13:54:54.000Z (over 7 years ago)
- Last Synced: 2024-10-11T07:10:02.454Z (about 1 month ago)
- Language: PHP
- Size: 26.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PHP Pusher
A PHP Websocket framework that is build on [Ratchet](http://socketo.me/) to create a powerfull Websocket Server,
that pushes Data to your Clients to keep them up to Date.## Requirements
Shell access is required and root access is recommended.
## Getting Started
To install the framework, run: ```composer require cbl/php-pusher```
## Code Example
Server:
```php
WebSocket->request->getCookies();
// return false if the client has no session
if(!isset($cookies['session']))
return false;
$session = $cookies['session'];
if(!$session)
return false;
// Return the user id
return 5;
//return getUserIdBySession(urldecode($session));
}public function authAdmin($client) {
$admin_ids = [1,5,9];
if(in_array($client->login, $admin_ids))
return true;
return false;
}
}// config
$config = [
// Store multiple datasets in cache.
'list' => [
'chat_messages' => [
'save_auth' => true
],
'wallet' => [
'cache' => false,
'auth' => ['login' => 'only']
]
],
// Store only one dataset in cache
'dict' => [
'player' => [
'auth' => ['login' => true]
]
],
'specials' => [
'online_counter' => true
]
];
// Create Server
$server = new PusherServer();
$server->setConfig($config);
$server->run();
```Client:
```php
send('chat_message', 'Hi!', $receiver);
// Send wallet amount only to the receiver
$client->send('wallet', 100, $receiver);
// Start a timer
$client->startTimer('game_timer', 30, true);
// Publish game after timer
$client->send('game', [
'data' => 'Some Data.'
]);
```