PHPackages                             devweyes/ws-server-cluster - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. devweyes/ws-server-cluster

ActiveLibrary[HTTP &amp; Networking](/categories/http)

devweyes/ws-server-cluster
==========================

websocket cluster server for swoft

v1.0(6y ago)10441Apache-2.0PHPPHP &gt;7.1

Since Jan 10Pushed 6y ago2 watchersCompare

[ Source](https://github.com/devweyes/swoft-ws-server-cluster)[ Packagist](https://packagist.org/packages/devweyes/ws-server-cluster)[ RSS](/packages/devweyes-ws-server-cluster/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

swoft websocket cluster
=======================

[](#swoft-websocket-cluster)

1. 介绍
-----

[](#1-介绍)

基于swoole websocket server的swoft websocket已经很方便的开箱即用，但其无法直接支持多机器集场。

本组件可支持大多数web推送场景，IM互聊场景，IM群发场景等。

使用前请通读[Swot webdocket Server文档](https://www.swoft.org/documents/v2/core-components/websocket)，配置习惯与其并无任何变化。

流程请参见下图

[![avatar](images/ws.jpg)](images/ws.jpg)

- ① 客户端发起握手请求并建立连接
- ② 当前服务端向资源管理State注册并绑定当前用户信息
- ③ 服务端A向服务B所在消息队列推送消息
- ④ 服务端B消费消息并接收
- ⑤ 服务端B向客户端推送消息

2. 特性
-----

[](#2-特性)

- 高性能，水平扩容
- 高可用，所有机器都为master，相互心跳检测
- 消息队列与状态管理均采用适配器模式，默认均为redis驱动，拓展性强
- 事件均采用Aop切面技术,无感知，解耦
- 与原`Swoft Webdocket`使用起来基本一致，习惯保持

3. 安装
-----

[](#3-安装)

### composer

[](#composer)

```
composer require devweyes/ws-server-cluster

```

### redis

[](#redis)

默认使用redis内存服务器作为状态保存，消息队列。所以你还需至少一台redis服务器或集群

4. 使用
-----

[](#4-使用)

### 基本使用

[](#基本使用)

使用命令，`WsModule`，`消息控制器`，`消息解析器` 请参见[Swot webdocket Server文档](https://www.swoft.org/documents/v2/core-components/websocket)

一个完整的`WsModule`需配置全部已知方法注解，用于实现切面。包括`@OnHandshake()`.`@OnOpen()`.`@OnMessage()`.`@OnClose()` ,`@OnMessage()`可由`消息控制器`代替，否则可能无法正常使用。

### 集群配置

[](#集群配置)

默认配置，如需自定义可覆盖。

```
