jgswift / qtcp
使用 PHP 和 JavaScript 的 WebSocket 服务器/客户端
Requires
- php: >=5.5
- cboden/ratchet: 0.3.*
- jgswift/bubblr: 0.1.*
- jgswift/observr: 0.2.*
- jgswift/qio: 0.1.*
- jgswift/qtil: 0.1.*
- symfony/console: 2.5.*
Requires (Dev)
- adlawson/vfs: 0.9.*
- danvk/dygraphs: v1.0.1
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 04:05:29 UTC
README
使用 PHP 和 JavaScript 的 WebSocket 客户端/服务器
安装
通过 composer 安装
php composer.phar require jgswift/qtcp:dev-master
依赖关系
- php 5.5+
- html5 WebSocket
- cboden/ratchet
- symfony/console
- jgswift/qtil
- jgswift/qio
- jgswift/observr
- jgswift/bubblr
描述
qtcp 是一个用于使用 WebSocket 的客户端/服务器应用程序的实验性抽象层
用法
$app = new qtcp\Network\Application(['0.0.0.0',8081]); $app->attach('connect',function($client) { $client->attach('event', function($client, $e) { /* do something with event */ }); $client->attach('disconnect', function() { /* teardown client here */ }); }); $app->run();
示例
示例流
示例流作为概念原型,用于演示最基本的功能
服务器
配置
首先,通过编辑 config.js 来配置主机和端口
如果您打算在同一台机器上一起运行客户端和服务器,以下配置可能适用
var SampleStream = { host: 'localhost', port: 8081 };
运行
在终端或通过 SSH,导航到 qtcp 所在的目录并启动服务器
$ cd vendor/jgswift/qtcp/
$ php tests/Examples/SampleStream/Server.php localhost:8081
服务器将启动,您将看到
Starting server..
Server started.
$app = new qtcp\Network\Application([$host,$port]); $app->attach('connect',function($client) { $client->attach('event', function($client, $e) { /* send reply */ $client->send(new qtcp\Network\Packet('event',['hello world!'])); }); $client->attach('disconnect', function() { /* do something with disconnect */ }); }); $app->run();
客户端
打开网页浏览器并导航到 https:///your_project_directory/vendor/jgswift/qtcp/tests/Examples/SampleStream。
注意:如果 qtcp 在不同的目录中,请修改路径。
将出现一个示例应用程序,点击按钮发送第一个数据包
qtcp.network.client = new qtcp.client( "body", new qtcp.stream( new qtcp.resource(SampleStream.host,SampleStream.port) ) ); // attach packet processor for event packet qtcp.network.client.attach("event",function(data) { $("#response").html(data[0]); }); // connect to server qtcp.network.client.connect(); // send event packet with some dummy data $('input').on('click',function() { qtcp.network.client.send(new qtcp.network.packet("event"),{var1:"test"}); });
货币流
货币流示例模拟一个货币指数,同时更新所有客户端的价格变化。
服务器
配置
如上所述,通过编辑 config.js 来配置主机和端口
如果您打算在同一台机器上一起运行客户端和服务器,以下配置可能适用
var CurrencyStream = { host: 'localhost', port: 8081 };
运行
在终端或通过 SSH,导航到 qtcp 所在的目录并启动服务器
$ cd vendor/jgswift/qtcp/
$ php tests/Examples/CurrencyStream/Server.php
或者,您也可以指定主机/端口
$ php tests/Examples/CurrencyStream/Server.php 0.0.0.0:8081
服务器将启动,您将看到
Starting server..
Server started.
客户端
打开网页浏览器并导航到 https:///your_project_directory/vendor/jgswift/qtcp/tests/Examples/CurrencyStream。
注意:如果 qtcp 在不同的目录中,请修改路径。
价格流应用程序将列出货币指数。检查左侧的任何框以启动流。