egroupware / swoolepush
使用 Swoole 的 EGroupware 推送服务器
23.1.20240905
2024-07-08 08:03 UTC
Requires
- easyswoole/memcache: ^1.0
- pear-pear.horde.org/horde_mime: ^2.11
Requires (Dev)
- eaglewu/swoole-ide-helper: dev-english
- dev-master
- 23.1.20240905
- 23.1.20240624
- 23.1.20240430
- 23.1.20240304
- 23.1.20240125
- 23.1.20231220
- 23.1.20231219
- 23.1.20231201
- 23.1.20231129
- 23.1.20231122
- 23.1.20231110
- 23.1.20230911
- 23.1.20230824
- 23.1.20230728
- 23.1.20230726
- 23.1.20230620
- 23.1.20230524
- 23.1.20230503
- 23.1.20230428
- 23.1.20230412
- 23.1.20230328
- 23.1.20230314
- 23.1.20230228
- 23.1.20230210
- 23.1.20230125
- 23.1.20230114
- 23.1.20230110
- 23.1.x-dev
- 22.1.20220920
- 21.1.20230210
- 21.1.20221202
- 21.1.20220916
- 21.1.20220905
- 21.1.20220408
- 21.1.20220406
- 21.1.20220207
- 21.1.20211130
- 21.1.20210923
- 21.1.20210723
- 21.1.20210629
- 21.1.20210521
- 21.1.20210504
- 21.1.20210420
- 21.1.20210406
- 21.1.20210329
- 21.1.20210318
- 21.1.x-dev
- 20.1.20210503
- 20.1.20210324
- 20.1.20210125
- 20.1.20201217
- 20.1.20201202
- 20.1.20201028
- 20.1.20201020
- 20.1.20201005
- 20.1.20200914
- 20.1.20200901
- 20.1.20200818
- 20.1.20200812
- 20.1.20200810
- 20.1.20200731
- 20.1.20200728
- 20.1.20200716
- 20.1.20200710
- 20.1.20200628
- 20.1.20200613
- 20.1.20200525
- 20.1.x-dev
- dev-milan
This package is auto-updated.
Last update: 2024-09-05 07:14:44 UTC
README
开放任务
- 检查会话是否与 HTTP 主机 / 实例匹配,并且会话不是匿名会话
- 通过异步任务轮换令牌并将新令牌推送到活动会话
- 需要 Bearer 令牌来授权请求/发送推送消息
- 当客户端打开 WebSocket 连接时检查 sessionid 饼干
安装说明
最简单的安装方法是使用随容器开发系统一起提供的 容器化开发系统。
要在主机上运行的常规 web 服务器上安装 EGroupware 推送服务器,请按照以下说明操作
cd /path/to/egroupware
git clone git@github.com:EGroupware/swoolpush.git
cd swoolpush
docker run --rm -it -v $(pwd):/var/www -v /var/lib/php/sessions:/var/lib/php/sessions -p9501:9501 phpswoole/swoole
如果您不是使用 Ubuntu,则需要调整会话目录。
然后访问设置并安装 swoolpush 应用程序(用户不需要运行权限)。
您需要将 /push URL 代理到容器中,例如,对于 Apache
<Location /egroupware/push>
Order allow,deny
Allow from all
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /var/www/(.*) ws://:9501/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /var/www/(.*) https://:9501/$1 [P,L]
ProxyPreserveHost On
ProxyPassReverse https://:9501
</Location>
如果您使用不同的文档根,则需要更改上述 /var/www。
例如,对于 Nginx
location /egroupware/push {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass https://:9501;
}
发送测试消息
当客户端连接时,您可以从服务器输出中获取令牌。
curl -i -H 'Content-Type: application/json' -X POST 'https://boulder.egroupware.org/egroupware/push?token=<token>' \
-d '{"type":"message","data":{"message":"Hi ;)","type":"notice"}}'
记住,当您更改服务器时,需要重新启动 Docker 容器!