예제 #1
0
        private void OnReceiveData(object obj, ReceivedData cmd)
        {
            SafeInvokeAsync(cmdHandlers, h => h((byte)cmd.Command, cmd.Channel, cmd.DataFormat,
                                                cmd.Data1, cmd.Data2, cmd.Data3, cmd.Data4));

            scripts.EmitScriptEvent(
                "noolite:data:received", (byte)cmd.Command, cmd.Channel,
                cmd.DataFormat, cmd.Data1, cmd.Data2, cmd.Data3, cmd.Data4);
        }
예제 #2
0
        private async Task client_ApplicationMessageReceived(MqttApplicationMessageReceivedEventArgs e)
        {
            var msg     = e.ApplicationMessage;
            var payload = Encoding.UTF8.GetString(msg.Payload);

            Logger.LogDebug($"topic: {msg.Topic}, payload: {payload}, qos: {msg.QualityOfServiceLevel}, retain: {msg.Retain}");

            // events
            await SafeInvokeAsync(handlers, h => h(msg.Topic, msg.Payload));

            scripts.EmitScriptEvent("mqtt:message:received", msg.Topic, new Buffer(msg.Payload));
        }
예제 #3
0
        public void OnTimerElapsed(DateTime now)
        {
            lock (lockObject)
            {
                LoadTasks();

                var from = now.AddMinutes(-ACTIVE_PERIOD);
                var min  = lastEventTime <= from ? from : lastEventTime;

                var active = schedule
                             .Where(t => t.IsActive(min, now))
                             .ToArray();

                if (active.Any())
                {
                    lastEventTime = now;

                    using (var session = database.OpenSession())
                    {
                        foreach (var task in active)
                        {
                            Logger.LogInformation($"cron task started: {task.TaskId}");

                            if (!string.IsNullOrEmpty(task.EventAlias))
                            {
                                scripts.EmitScriptEvent(session, task.EventAlias);
                            }

                            SafeInvokeAsync(handlers, h => h(task.TaskId));

                            scripts.EmitScriptEvent(session, "cron:task:started", task.TaskId);
                        }
                    }
                }
            }
        }
예제 #4
0
 public HttpHandlerResult TmpHandlerMethod(HttpRequestParams requestParams)
 {
     scripts.EmitScriptEvent("mimi", 1, 2, 3, "GUID-111");
     return(null);
 }