aiwhj/swoole-websocket-client

web 调用 swoole 的 websocket 服务器客户端

1.0.0 2017-12-26 12:18 UTC

This package is not auto-updated.

Last update: 2024-04-28 02:27:17 UTC


README

web 调用 swoole 的 websocket 服务器客户端(composer 版)

**fork https://github.com/gy36/swoole_websocket_client **

1. 安装

需要安装 swoole 拓展

composer require aiwhj/swoole-websocket-client

2.服务端

基于 swoole_websocket_server 接口实现 websocket 服务

<?php

$server = new swoole_websocket_server("0.0.0.0", 2345);

$server->on('open', function (swoole_websocket_server $server, $request) {
	echo "server: handshake success with fd{$request->fd}\n";
});

$server->on('message', function (swoole_websocket_server $server, $frame) {
	echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
	$server->push($frame->fd, "this is server");
});

$server->on('close', function ($ser, $fd) {
	echo "client {$fd} closed\n";
});

$server->start();

3. 客户端

<?php
namespace aiwhj\swooleWsClient;

require 'autoload.php';

$client = new WebSocket('127.0.0.1', 2345, '/VH4OKgcjVHZTPlFzBnVTYwExCS9RdFdwDX5VdwFiV3ADaFRjBio=');

echo '准备' . "<br>";

if (!($temp = $client->connect())) {
	var_dump($temp);
	echo "失败" . "<br>";
	echo "connect to server failed.\n";
	exit;
}
$message = json_encode(array('data' => '这是广播消息', 'to' => [1, 2, 3, 4, 5, 6, 7, 8, 9]), JSON_UNESCAPED_UNICODE);

$client->send($message);
$message = $client->recv();
echo '发送' . "<br>";
if ($message === false) {
	exit;
}
echo "Received from server: {$message}\n";

echo "Closed by server.\n";