yggverse
5a68a95809
|
7 months ago | |
---|---|---|
src | 7 months ago | |
.gitignore | 7 months ago | |
LICENSE | ||
README.md | 7 months ago | |
composer.json | 7 months ago |
README.md
nps-php
PHP 8 / Composer Library for NPS Protocol
Like Titan for Gemini, NPS is the satellite for NEX protocol (see also 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!
$server = new \Yggverse\Nps\Server;
Provide optional host
, port
, size
, line
and live
arguments in constructor:
$server = new \Yggverse\Nps\Server('127.0.0.1', 1915);
Alternatively, use following setters after object initiation
Server::setHost
Bind server host to listen incoming connections, 127.0.0.1
by default
Server::getHost
Get current server host
Server::setPort
Bind server port to listen incoming connections, 1915
by default
Server::getPort
Get current server port
Server::setSize
Set total content length limit by mb_strlen, 0
by default (unlimited)
Server::getSize
Get current content length limit
Server::setLine
Set packet line limit in bytes passing to fread, 1024
by default
Server::getLine
Get current packet line limit
Server::setLive
Set server status true
|false
to shutdown immediately
Server::getLive
Get current server status
Server::start
Run server object using this method.
Define handler function as the argument to process application logic dependent of client request.
$server->start(
function (
bool $success,
string $content,
string $request,
string $connect
): ?string
{
printf(
'connection: %s request: %s',
$connect,
$request
);
if ($success)
{
var_dump(
$content
);
}
return 'thank you!'; // null|string response
}
);
Server::stop
Stop server instance.
Same to Server::setLive(false)
Testing
nc 127.0.0.1 1915
- connect server usingnc
test
- enter the target pathYOUR MESSAGE GOES HERE
- enter the message text.
- commit package with dot
To send any file:
test
╦ ╦╔═╗╔═╗╔╦╗╦═╗╔═╗╔═╗╦╦
╚╦╝║ ╦║ ╦ ║║╠╦╝╠═╣╚═╗║║
╩ ╚═╝╚═╝═╩╝╩╚═╩ ╩╚═╝╩╩═╝
.
cat file.txt | nc 127.0.0.1 1915