hoa / websocket
该包已废弃,不再维护。未建议替代包。
Hoa\Websocket 库。
3.17.01.09
2017-01-09 13:53 UTC
Requires
- hoa/consistency: ~1.0
- hoa/event: ~1.0
- hoa/exception: ~1.0
- hoa/http: ~1.0
- hoa/socket: ~1.0
Suggests
- ext-openssl: To get a better security when exchanging messages.
This package is auto-updated.
Last update: 2021-09-20 08:33:52 UTC
README
Hoa 是一组 模块化、可扩展 和 结构化 的 PHP 库。
此外,Hoa 致力于成为工业和研究世界之间的桥梁。
Hoa\Websocket
此库允许操作 WebSocket 协议,并提供服务器和客户端。它支持两个规范 RFC6455 和 Hybi(同时)。
了解更多.
安装
使用 Composer,要将此库添加到依赖项中,您需要要求 hoa/websocket
$ composer require hoa/websocket '~3.0'
有关更多安装过程,请参阅 源代码页面。
测试
在运行测试套件之前,必须安装开发依赖项
$ composer install
然后,要运行所有测试套件
$ vendor/bin/hoa test:run
有关更多信息,请参阅 贡献指南。
快速使用
作为一个快速概述,我们建议启动一个 WebSocket 服务器并回显消息。类 Hoa\Websocket\Server
提供了六个监听器:open
、message
、binary-message
、ping
、close
和 error
。因此
$websocket = new Hoa\Websocket\Server( new Hoa\Socket\Server('ws://127.0.0.1:8889') ); $websocket->on('open', function (Hoa\Event\Bucket $bucket) { echo 'new connection', "\n"; return; }); $websocket->on('message', function (Hoa\Event\Bucket $bucket) { $data = $bucket->getData(); echo '> message ', $data['message'], "\n"; $bucket->getSource()->send($data['message']); echo '< echo', "\n"; return; }); $websocket->on('close', function (Hoa\Event\Bucket $bucket) { echo 'connection closed', "\n"; return; }); $websocket->run();
最后,我们需要用 HTML 和 Javascript 编写一个客户端
<input type="text" id="input" placeholder="Message…" /> <hr /> <pre id="output"></pre> <script> var host = 'ws://127.0.0.1:8889'; var socket = null; var input = document.getElementById('input'); var output = document.getElementById('output'); var print = function (message) { var samp = document.createElement('samp'); samp.innerHTML = message + '\n'; output.appendChild(samp); return; }; input.addEventListener('keyup', function (evt) { if (13 === evt.keyCode) { var msg = input.value; if (!msg) { return; } try { socket.send(msg); input.value = ''; input.focus(); } catch (e) { console.log(e); } return; } }); try { socket = new WebSocket(host); socket.onopen = function () { print('connection is opened'); input.focus(); return; }; socket.onmessage = function (msg) { print(msg.data); return; }; socket.onclose = function () { print('connection is closed'); return; }; } catch (e) { console.log(e); } </script>
这里。所有发送的消息都会被回显。
Awecode
以下 awecodes 展示了此库的实际应用
Hoa\Websocket
: 如何使用Hoa\Websocket\Server
和Hoa\Websocket\Client
?一个简单的示例将说明 WebSocket 协议。
文档
《Hoa\Websocket》黑客手册 包含有关如何使用此库以及它如何工作的详细信息。
要本地生成文档,请执行以下命令
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
更多文档可以在项目的网站上找到: hoa-project.net。
获取帮助
主要有两种方式可以获得帮助
- 在
#hoaproject
IRC 频道中, - 在 users.hoa-project.net 的论坛上。
贡献
你想贡献吗?谢谢!详细的 贡献指南 解释了你需要知道的一切。
许可证
Hoa项目采用新BSD许可证(BSD-3-Clause)。请参阅LICENSE
获取详细信息。
相关项目
以下项目使用了这个库
- Marvirc,一个简单、极度模块化和极快速度的IRC机器人,
- WellCommerce,基于Symfony 3全栈框架的现代电子商务引擎。