yggverse / nps
此包已被弃用且不再维护。没有建议的替代包。
NPS 协议的 PHP 8 库
1.3.1
2024-04-30 01:15 UTC
README
已归档!
使用 Ratchet 的 IoServer
- PHP 中的异步 WebSocket,作为此库的更多功能的替代。
nps-php
PHP 8 / Composer 的 NPS 协议库
就像 Titan 是 Gemini 的卫星一样,NPS 是 NEX 协议(参见nex-php)的卫星。
它监听行中的单个点以表示包结束。
规范
nex://nightfall.city/nps/
用法
composer require yggverse/nps
服务器
构建交互式服务器实例以监听 NPS 协议连接!
$server = new \Yggverse\Nps\Server;
在构造函数中提供可选的 host
、port
、size
、line
和 live
参数
$server = new \Yggverse\Nps\Server('127.0.0.1', 1915);
或者,在对象初始化后使用以下设置器
Server::setHost
将服务器主机绑定到监听传入连接,默认为 127.0.0.1
Server::getHost
获取当前服务器主机
Server::setPort
将服务器端口绑定到监听传入连接,默认为 1915
Server::getPort
获取当前服务器端口
Server::setSize
通过 mb_strlen 设置总内容长度限制,默认为 0
(无限)
Server::getSize
获取当前内容长度限制
Server::setLine
通过传递给 fread 的字节数设置包行限制,默认为 1024
Server::getLine
获取当前包行限制
Server::setLive
将服务器状态设置为 true
|false
以立即关闭
Server::getLive
获取当前服务器状态
Server::setWelcome
在建立对等连接时定义应用程序逻辑
$server->setWelcome( function ( string $connect ): ?string { printf( "connected: %s\n\r", $connect ); return sprintf( "welcome, %s\n\r", $connect ); } );
Server::getWelcome
获取当前的 Welcome
函数,默认为 null
Server::setPending
在对等方发起初始请求时定义应用程序逻辑
$server->setPending( function ( string $request, string $connect ): ?string { printf( 'connection: %s requested: %s', $connect, $request, ); return sprintf( 'received: %s', $request ); } );
Server::getPending
获取当前的 Pending
函数,默认为 null
Server::setHandler
在接收到完整包时定义基本应用程序逻辑
- 也可以定义为 Server::start 参数
$server->setHandler( 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!'; } );
Server::getHandler
获取当前的 Handler
函数,默认为 null
Server::start
运行服务器对象
$server->start();
可选地,将处理函数定义为参数以处理依赖于客户端请求的应用程序逻辑
$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
停止服务器实例。
等同于 Server::setLive(false)
测试
nc 127.0.0.1 1915
- 使用nc
连接到服务器test
- 输入目标路径YOUR MESSAGE GOES HERE
- 输入消息文本.
- 使用点提交包
发送任何文件
test ╦ ╦╔═╗╔═╗╔╦╗╦═╗╔═╗╔═╗╦╦ ╚╦╝║ ╦║ ╦ ║║╠╦╝╠═╣╚═╗║║ ╩ ╚═╝╚═╝═╩╝╩╚═╩ ╩╚═╝╩╩═╝ .
cat file.txt | nc 127.0.0.1 1915