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.
yggverse 390afe2162 update readme 1 month ago
src implement server class 1 month ago
.gitignore initial commit 1 month ago
LICENSE Initial commit 1 month ago
README.md update readme 1 month ago
composer.json initial commit 1 month 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 and size arguments in constructor or use available setters after object initiation.

$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.

$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:

test
╦ ╦╔═╗╔═╗╔╦╗╦═╗╔═╗╔═╗╦╦
╚╦╝║ ╦║ ╦ ║║╠╦╝╠═╣╚═╗║║
 ╩ ╚═╝╚═╝═╩╝╩╚═╩ ╩╚═╝╩╩═╝
.

cat file.txt | nc 127.0.0.1 1915