2023-10-20 12:33:18 +08:00
|
|
|
using System;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Text.Encodings.Web;
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
using System.Text.Unicode;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
2023-10-23 17:39:27 +08:00
|
|
|
using SimApi.Helpers;
|
2023-10-20 12:33:18 +08:00
|
|
|
|
|
|
|
|
namespace SimApi;
|
|
|
|
|
|
|
|
|
|
public partial class Synapse
|
|
|
|
|
{
|
|
|
|
|
private void RunEventClient()
|
|
|
|
|
{
|
|
|
|
|
EventClientChannel = CreateChannel(0, "EventClient");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void FireEvent(string eventName, object param)
|
|
|
|
|
{
|
2023-10-23 17:39:27 +08:00
|
|
|
var paramJson = JsonSerializer.Serialize(param, SimApiUtil.JsonOption);
|
2023-10-20 12:33:18 +08:00
|
|
|
var router = $"event.{Options.AppName}.{eventName}";
|
|
|
|
|
var props = EventClientChannel.CreateBasicProperties();
|
|
|
|
|
props.AppId = Options.AppId;
|
|
|
|
|
props.MessageId = Guid.NewGuid().ToString();
|
|
|
|
|
props.ReplyTo = Options.AppName;
|
|
|
|
|
props.Type = eventName;
|
|
|
|
|
EventClientChannel.BasicPublish(Options.SysName, router, false, props, Encoding.UTF8.GetBytes(paramJson));
|
|
|
|
|
Logger.LogDebug("Event Publish: {OptionsAppName}.{EventName}\n{ParamJson}", Options.AppName, eventName,
|
|
|
|
|
paramJson);
|
|
|
|
|
}
|
|
|
|
|
}
|