コード例 #1
0
 public ReverseWSCaller(
     int listen_port,
     string api_path,
     string access_token
     )
 {
     api_path = api_path.Trim('/');
     server   = new WebsocketDaemon.WebsocketServerInstance(
         listen_port, api_path, access_token,
         m => {
         Log.Debug($"[reverse websocket received API response]:\n{m}");
         JToken t = JToken.Parse(m);
         lock (buffer_lock) {
             buffer[t["echo"].ToObject <long> ()] = t;
         }
     }
         );
 }
コード例 #2
0
 public ReverseWSListener(int bind_port, string event_path, string access_token)
 {
     event_path = event_path.Trim('/');
     server     = new WebsocketDaemon.WebsocketServerInstance(
         bind_port, event_path, access_token,
         message => {
         Task.Run(async() => {
             try {
                 if (string.IsNullOrEmpty(message))
                 {
                     return;
                 }
                 CQResponse response = await GetResponse(message);
                 if (response is EmptyResponse == false)
                 {
                     if (caller != null)
                     {
                         await caller.SendRequestAsync(
                             new ApiCall.Requests.HandleQuickOperationRequest(
                                 context: message,
                                 operation: response.content
                                 ));
                     }
                     else
                     {
                         Log.Warn("反向WS无法快速响应(caller为null)");
                     }
                 }
             } catch (System.Exception e) {
                 Log.Error(
                     $"处理事件时发生未处理的异常{e},错误信息为{e.Message}"
                     );
             }
         });
     }
         );
 }