2.5 KiB
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.
Alternatively, just use available setters documented bellow after object initiation.
$server = new \Yggverse\Nps\Server('127.0.0.1', 1915);
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
) {
printf(
'connection: %s request: %s',
$connect,
$request
);
if ($success)
{
var_dump(
$content
);
}
}
);
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