PHP / Composer Library for NPS Protocol
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
1.7 KiB

7 months ago
# nps-php
7 months ago
PHP 8 / Composer Library for NPS Protocol (see also [nex-php](https://github.com/YGGverse/nex-php))
7 months ago
Like Titan for Gemini, NPS is the satellite for Nex protocol\
7 months ago
it uses dot in line to signal the package ending.
7 months ago
**Example**
7 months ago
1. `nc nightfall.city 1915` - connect server using `nc`
2. `classifieds` - enter the target path
3. `YOUR MESSAGE GOES HERE` - enter the message text
4. `.` - commit package with dot
To send any file:
``` file.txt
classifieds
╦ ╦╔═╗╔═╗╔╦╗╦═╗╔═╗╔═╗╦╦
╚╦╝║ ╦║ ╦ ║║╠╦╝╠═╣╚═╗║║
╩ ╚═╝╚═╝═╩╝╩╚═╩ ╩╚═╝╩╩═╝
.
```
7 months ago
`cat file.txt | nc nightfall.city 1915`
7 months ago
7 months ago
**Specification**
7 months ago
`nex://nightfall.city/nps/`
7 months ago
## Usage
```
composer require yggverse/nps
```
## Server
Build interactive server instance to listen NPS protocol connections!
``` php
$server = new \Yggverse\Nps\Server;
```
Provide optional `host`, `port` and `size` arguments in constructor or use available setters after object initiation.
``` php
$server = new \Yggverse\Nps\Server('127.0.0.1', 1915);
```
#### Server::setHost
#### Server::getHost
#### Server::setPort
#### Server::getPort
#### Server::setSize
#### Server::getSize
#### Server::setLive
#### Server::getLive
#### Server::start
Run server object using this method.
Define handler function as the argument to process application logic dependent of client request.
``` php
$server->start(
function (
string $request,
string $connect
) {
printf(
'connection: %s request: %s',
$connect,
$request
);
}
);
```
#### Server::stop
Stop server instance.
Same to `Server::setLive(false)`