TsgcWSAPIServer_WebPush › 方法 › BroadcastNotification
向内部 Subscriptions 列表中当前持有的每个订阅发送相同的通知。
procedure BroadcastNotification(const aMessage : TsgcWebPushMessage);
| 名称 | 类型 | 描述 |
|---|---|---|
aMessage | const TsgcWebPushMessage | 结构化通知(Title/Body/Icon/Url),通过 AsJSON 序列化一次,并为每个订阅复用。 |
在锁保护下遍历线程安全的 Subscriptions 列表,并为每个条目调用 SendNotification。若发送失败,则触发 OnWebPushSendNotificationException;当 Remove 返回 True(默认值)时,该订阅将自动从列表中移除,非常适合清理推送服务返回的 404/410 响应。
var
oMessage: TsgcWebPushMessage;
begin
oMessage := TsgcWebPushMessage.Create;
try
oMessage.Title := 'eSeGeCe Notification';
oMessage.Body := 'New version released!!!';
oMessage.Icon := 'https://www.esegece.com/images/esegece_logo_small.png';
oMessage.Url := 'https://www.esegece.com';
sgcWSAPIServer_WebPush1.BroadcastNotification(oMessage);
finally
oMessage.Free;
end;
end;
procedure BroadcastNotification(const aMessage: string);
| 名称 | 类型 | 描述 |
|---|---|---|
aMessage | const string | 原始载荷(通常为 JSON),在按订阅加密后原封不动地投递给每个订阅者。 |
当广播负载已序列化时使用的便捷重载。您可以通过 Subscriptions.AddSubscription/Subscriptions.RemoveSubscription 手动添加或删除订阅(如果您自行管理持久化)。
sgcWSAPIServer_WebPush1.BroadcastNotification(
'{"title":"Heads up","body":"Server restarting in 5 min"}');