jgswift/qtcp

使用 PHP 和 JavaScript 的 WebSocket 服务器/客户端

dev-master 2014-12-08 00:49 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:05:29 UTC


README

使用 PHP 和 JavaScript 的 WebSocket 客户端/服务器

Build Status

安装

通过 composer 安装

php composer.phar require jgswift/qtcp:dev-master

依赖关系

描述

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();

示例

示例流

tests/Examples/SampleStream

示例流作为概念原型,用于演示最基本的功能

服务器

配置

首先,通过编辑 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"});
});

货币流

tests/Examples/CurrencyStream

货币流示例模拟一个货币指数,同时更新所有客户端的价格变化。

服务器

配置

如上所述,通过编辑 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 在不同的目录中,请修改路径。

价格流应用程序将列出货币指数。检查左侧的任何框以启动流。