bat_coder / etzelclient
一个连接到 etzel 服务器的最小化 PHP 库
Requires
- php: >=5.3.0
- textalk/websocket: 1.0.*
This package is not auto-updated.
Last update: 2024-09-28 19:14:51 UTC
README
# Etzel 服务器 PHP 客户端:在您的 composer.json 文件中添加 { "minimum-stability": "dev", "require": { "bat_coder/etzelclient": "dev-master" } }
1. publish(queuename,message,options)
此函数将消息推送到 etzel 服务器。所需参数包括 queuename(您想发布的队列名称)、message(您想发布到队列的消息),options 包含延迟和过期功能。当消息插入需要延迟或消息有效性需要过期时,可以使用 options 参数。options 参数不是必填项。延迟和过期时间以秒为单位。
示例:
<?php
$etzel = new EtzelClient("ws://127.0.0.1:8080/connect");
$emails= ["abc@example.com","def@example.com","hij@example.com"];
foreach($emails as $email){
$etzel->publish("group1", $email);
}
?>
test 是队列名称,hi 是消息,延迟为 0 秒
发布额外的选项
$etzel->publish('test','hi',{delay:5,expires:3600,priority:0});
-
delay
:项目将在此秒数过去后才能在队列中可用。默认为 0 秒。最大值为 365 天(秒)。 -
expires
:在删除项目之前,将其保留在队列中的秒数。默认为 0(365 天)。 -
priority
:可以是 -20、0、20(高、中、低)。
2. subscribe(queuename,callback)
subscribe 函数从 etzel 服务器获取消息。所需参数包括 queuename(您想获取数据的队列名称),callback 是您需要提供的自定义函数。
示例:
ec->subscribe("test",cb);
在这里 test 是队列名称。从特定队列获取数据的实体被称为工作进程。您可以在同一队列上运行多个工作进程。服务器在多个工作进程之间提供负载均衡。获取消息将从队列中删除消息(在 60 秒后重新入队)。
acknowledge(queuename,uid)
要永久删除它,我们使用 acknowledge 函数,该函数从队列中删除/确认特定的消息。所需参数包括 queuename 和您想要确认的消息的 ID。
从队列收到的响应如下:
收到的所有响应都在标准的 JSON 格式。
找不到队列:
{
"cmd":"nok",
"err": "Q_NOT_FOUND"
}
```
#### No Message Available in the requested Queue:-
{ "cmd":"nomsg", "qname": "$Q_NAME" }
#### Server says it is OK to go to sleep
{ "cmd":"okslp", "qname": "$Q_NAME" }
#### Message Available in the requested Queue:-
{ "cmd": "msg", "qname": "$Q_NAME", "uid": "$uid", "error_count": "$count", "msg": "$message" }
#### Queue is awake:-
{ "cmd":"awk", "qname": "$Q_NAME" }