# nps-php PHP 8 / Composer Library for NPS Protocol Like Titan for Gemini, NPS is the satellite for NEX protocol (see also [nex-php](https://github.com/YGGverse/nex-php))\ it listen for single dot in line to signal the package ending. ## Specification `nex://nightfall.city/nps/` ## 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 $content, string $request, string $connect ) { printf( 'connection: %s request: %s', $connect, $request ); var_dump( $content ); } ); ``` #### Server::stop Stop server instance. Same to `Server::setLive(false)` ### Testing 1. `nc 127.0.0.1 1915` - connect server using `nc` 2. `test` - enter the target path 3. `YOUR MESSAGE GOES HERE` - enter the message text 4. `.` - commit package with dot To send any file: ``` file.txt test ╦ ╦╔═╗╔═╗╔╦╗╦═╗╔═╗╔═╗╦╦ ╚╦╝║ ╦║ ╦ ║║╠╦╝╠═╣╚═╗║║ ╩ ╚═╝╚═╝═╩╝╩╚═╩ ╩╚═╝╩╩═╝ . ``` `cat file.txt | nc 127.0.0.1 1915`