zanderwar/php-websocket

PHP中简单的WebSocket服务器和客户端实现。

v2.1.0 2020-11-15 11:21 UTC

This package is auto-updated.

Last update: 2024-09-20 16:50:54 UTC


README

无冗余的PHP WebSockets

使用PHP实现简单的WebSocket服务器和客户端。

关于

此应用程序是PHP中极简单的WebSocket协议实现。它包含服务器和客户端。此实现非常适合入门WebSocket并学习相关知识。一旦你想创建一个功能齐全的基于WebSocket的应用程序,你可能需要切换到更复杂的解决方案。

安装

将仓库克隆或下载到您的服务器。您也可以通过运行以下命令使用composer安装此包:

composer require bloatless/php-websocket

要求

  • PHP >= 7.2

提示:如果您仍在使用PHP5,可以使用版本1.0。

使用方法

  • 调整 cli/server.php 以满足您的需求。
  • 运行: php cli/server.php

这将启动一个WebSocket服务器。(默认为localhost:8000)

服务器示例

这将创建一个监听在端口8000的WebSocket服务器。

服务器上有两个注册的应用程序。演示应用程序可在 ws://localhost:8000/demo 上访问,状态应用程序可在 ws://localhost:8000/status 上访问。

// Require neccessary files here...

$server = new \Bloatless\WebSocket\Server('127.0.0.1', 8000);

// Server settings:
$server->setMaxClients(100);
$server->setCheckOrigin(false);
$server->setAllowedOrigin('foo.lh');
$server->setMaxConnectionsPerIp(100);
$server->setMaxRequestsPerMinute(2000);

// Add your applications here:
$server->registerApplication('status', \Bloatless\WebSocket\Application\StatusApplication::getInstance());
$server->registerApplication('demo', \Bloatless\WebSocket\Application\DemoApplication::getInstance());

$server->run();

客户端示例

这将创建一个WebSocket客户端,连接到服务器并向服务器发送消息

$client = new \Bloatless\WebSocket\Client;
$client->connect('127.0.0.1', 8000, '/demo', 'foo.lh');
$client->sendData([
    'action' => 'echo',
    'data' => 'Hello Wolrd!'
]);

浏览器示例

仓库中包含两个用于在浏览器中调用的演示页面。您可以在 public 文件夹中找到它们。 index.html 是一个简单的应用程序,您可以使用它向服务器发送消息。

status.html 将显示各种服务器信息。