public override async Task GetMessages(GetMessageRequest request, IServerStreamWriter <ChatMessage> responseStream, ServerCallContext context) { foreach (var msg in _db.MessageBoard) { await responseStream.WriteAsync(DBMessageConversion(msg)); } }
static async Task Main(string[] args) { Console.WriteLine("Starting..."); var serverAddress = "https://localhost:5001"; var httpClientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }; var httpClient = new HttpClient(httpClientHandler); var channel = GrpcChannel.ForAddress(serverAddress, new GrpcChannelOptions { HttpClient = httpClient }); var _client = new MessageService.MessageServiceClient(channel); // example 1 var request = new GetMessageRequest { Id = "6523" }; var response = _client.GetMessage(request); Console.WriteLine($"Server response: {response.Message} {response.Value1} {response.Value2}"); // example 2 var stream = _client.GetMessagesStream(request); while (await stream.ResponseStream.MoveNext(CancellationToken.None)) { Console.WriteLine($"{stream.ResponseStream.Current.Message} {stream.ResponseStream.Current.Value1}"); } Console.WriteLine(stream.GetStatus()); }
public async Task <ShareModel?> GetMessage(string ethAddress, string hash, string skylink) { string url = baseUrl + "/share/get"; skylink = skylink.Replace("sia://", string.Empty); GetMessageRequest reqModel = new GetMessageRequest() { Address = ethAddress, SecretHash = hash, Skylink = skylink }; HttpClient client = new HttpClient(); var result = await client.PostAsJsonAsync(url, reqModel); if (result.IsSuccessStatusCode) { var json = await result.Content.ReadAsStringAsync(); var shareModel = JsonSerializer.Deserialize <ShareModel>(json); if (shareModel?.Sum?.ShareOrigin != null) { shareModel.Sum.ShareOrigin = null; } return(shareModel); } return(null); }
public override Task <GetMessageResponse> GetMessage(GetMessageRequest request, ServerCallContext context) => Task.FromResult(new GetMessageResponse { Id = "Value", Value1 = 12, Value2 = 12.32 });
public override Task <GetMessageResponse> GetMessage(GetMessageRequest request, ServerCallContext context) => Task.FromResult(new GetMessageResponse { Message = $"Some message from server", Value1 = 256, Value2 = 214.35 });
public IActionResult Message(string id) { var request = new GetMessageRequest() { MessageId = id }; var response = _getMessage.Handle(request); return(Ok(response.Message)); }
// 从 dp2mserver 获得消息 // 每次最多获得 100 条 List <MessageRecord> GetMessage() { string strError = ""; CancellationToken cancel_token = new CancellationToken(); string id = Guid.NewGuid().ToString(); GetMessageRequest request = new GetMessageRequest(id, "", this.GroupName, // "" 表示默认群组 "", "", // strTimeRange, "", // sort "", //id "", // subject 0, 100); try { MessageConnection connection = this.Channels.GetConnectionTaskAsync( this.Url, "").Result; #if NO GetMessageResult result = connection.GetMessage( request, new TimeSpan(0, 1, 0), cancel_token).Result; #endif GetMessageResult result = connection.GetMessage( request, new TimeSpan(0, 1, 0), cancel_token); if (result.Value == -1) { goto ERROR1; } return(result.Results); } catch (AggregateException ex) { strError = MessageConnection.GetExceptionText(ex); goto ERROR1; } catch (Exception ex) { strError = ex.Message; goto ERROR1; } ERROR1: WriteErrorLog("GetMessage() error: " + strError); return(new List <MessageRecord>()); }
public override async Task GetMessagesStream(GetMessageRequest request, IServerStreamWriter <GetMessageResponse> responseStream, ServerCallContext context) { await responseStream.WriteAsync(new GetMessageResponse { Id = "1", Value1 = 1, Value2 = 1 }); await Task.Delay(3000); await responseStream.WriteAsync(new GetMessageResponse { Id = "1", Value1 = 1, Value2 = 1 }); await Task.Delay(3000); await responseStream.WriteAsync(new GetMessageResponse { Id = "1", Value1 = 1, Value2 = 1 }); }
public override async Task GetMessagesStream(GetMessageRequest request, IServerStreamWriter <GetMessageResponse> responseStream, ServerCallContext context) { var random = new Random(); for (int i = 1; i <= 10; ++i) { // simulate some work var delay = random.Next(100, 2000); await Task.Delay(delay); await responseStream.WriteAsync(new GetMessageResponse { Message = $"Step: {i}", Value1 = delay, Value2 = delay * delay }); } }
/// <summary>Snippet for GetMessage</summary> public void GetMessageRequestObject() { // Snippet: GetMessage(GetMessageRequest, CallSettings) // Create client MessagesClient messagesClient = MessagesClient.Create(); // Initialize request argument(s) GetMessageRequest request = new GetMessageRequest { MessageName = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]"), }; // Make the request Message response = messagesClient.GetMessage(request); // End snippet }
public async stt::Task GetMessageResourceNamesAsync() { moq::Mock <Messages.MessagesClient> mockGrpcClient = new moq::Mock <Messages.MessagesClient>(moq::MockBehavior.Strict); GetMessageRequest request = new GetMessageRequest { MessageName = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]"), }; Message expectedResponse = new Message { MessageName = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]"), To = "to03e2b601", From = "fromf8078ad9", Body = "body682d1a84", StatusUpdateUrl = "status_update_url6240cc54", ReplyUrl = "reply_urla9dcb82b", ValidityPeriodSeconds = 1525204720, SmartEncoding = true, Direction = Message.Types.Direction.Incoming, ErrorCode = "error_code42bd958e", ErrorMessage = "error_messaged73952bd", SegmentCount = 45476232, Price = new gt::Money(), Status = Message.Types.Status.Sending, CreateIdentity = "create_identityc92d734f", CreateTime = new wkt::Timestamp(), SendTime = new wkt::Timestamp(), DeliverTime = new wkt::Timestamp(), Labels = { { "key8a0b6e3c", "value60c16320" }, }, Classification = Message.Types.MessageClassification.Marketing, UnsubscribeContentBehavior = Message.Types.UnsubscribeContentBehavior.AppendUrl, Encoding = Message.Types.MessageEncoding.Gsm7, }; mockGrpcClient.Setup(x => x.GetMessageAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Message>(stt::Task.FromResult(expectedResponse), null, null, null, null)); MessagesClient client = new MessagesClientImpl(mockGrpcClient.Object, null); Message responseCallSettings = await client.GetMessageAsync(request.MessageName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None)); xunit::Assert.Same(expectedResponse, responseCallSettings); Message responseCancellationToken = await client.GetMessageAsync(request.MessageName, st::CancellationToken.None); xunit::Assert.Same(expectedResponse, responseCancellationToken); mockGrpcClient.VerifyAll(); }
// 从 dp2mserver 获得消息 // 每次最多获得 100 条 List <MessageRecord> GetMessage() { string strError = ""; CancellationToken cancel_token = new CancellationToken(); string subjectCondition = ""; string id = Guid.NewGuid().ToString(); GetMessageRequest request = new GetMessageRequest(id, "", this.GroupName, // "" 表示默认群组 "", "", // strTimeRange, "publishTime|asc", //sortCondition 按发布时间正序排 "", subjectCondition, 0, 100); try { MessageConnection connection = this.Channels.GetConnectionTaskAsync( this.Url, dp2WeiXinService.C_ConnName_TraceMessage).Result; GetMessageResult result = connection.GetMessage(request, new TimeSpan(0, 1, 0), cancel_token); if (result.Value == -1) { goto ERROR1; } return(result.Results); } catch (AggregateException ex) { strError = MessageConnection.GetExceptionText(ex); goto ERROR1; } catch (Exception ex) { strError = ex.Message; goto ERROR1; } ERROR1: dp2WeiXinService.Instance.WriteErrorLog("GetMessage() error: " + strError); //this.WriteLog("GetMessage() error: " + strError,dp2WeiXinService.C_LogLevel_1); return(new List <MessageRecord>()); }
/// <summary> /// Return first unread message and mark Message as received /// </summary> public Task <GetMessageResponse> GetFirstUnreadMessage(GetMessageRequest request) { foreach (var msg in _messages) { if (msg.RecipientId == request.RecipientId && !msg.DeliveredToRecipient) { var receivedMessage = msg; msg.MarkAsReceived(); return(Task.FromResult(new GetMessageResponse { SenderId = msg.SenderId, Content = msg.Content })); } } return(Task.FromResult(new GetMessageResponse())); }
/// <summary>Snippet for GetMessageAsync</summary> public async Task GetMessageRequestObjectAsync() { // Snippet: GetMessageAsync(GetMessageRequest, CallSettings) // Additional: GetMessageAsync(GetMessageRequest, CancellationToken) // Create client MessagesClient messagesClient = await MessagesClient.CreateAsync(); // Initialize request argument(s) GetMessageRequest request = new GetMessageRequest { MessageName = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]"), }; // Make the request Message response = await messagesClient.GetMessageAsync(request); // End snippet }
public HttpResponseMessage getMessage(string user, [FromBody] GetMessageRequest request) { if (UserDAO.Instance.isExists(user)) { User u = UserDAO.Instance.findByUsername(user); if (u.messages.Count != 0) { //Timestamp prüfen Double unixtimeDouble = Convert.ToDouble(request.timestamp); DateTime timestamp = Util.Converter.UnixTimeStampToDateTime(unixtimeDouble) .AddMinutes(5); if (DateTime.Now > timestamp) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Timestamp ungültig")); } //Inhalt der Anfrage gegen die Signatur prüfen string publickey = Util.Converter.Base64StringToString(u.pubkey); if (!VerifyLogic.verifyGetMessageRequest(request.timestamp, u.username, request.dig_sig, publickey)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Signatur ungültig")); } //Die erste Nachricht holen var msg = UserDAO.Instance.getFirstMessage(u); if (msg != null) { MessageResponse msg_r = new MessageResponse(); msg_r.cipher = msg.cipher; msg_r.iv = msg.iv; msg_r.key_recipient_enc = msg.key_recipient_enc; msg_r.sender = msg.sender; msg_r.sig_recipient = msg.sig_recipient; UserDAO.Instance.removeMessage(u, msg); return(Request.CreateResponse(HttpStatusCode.OK, msg_r)); } } } return(new HttpResponseMessage(HttpStatusCode.NotFound)); }
private void updateMessagies(Conversation conv) { RequestResponse resp; GetMessageRequest request = new GetMessageRequest(); List <String> args = new List <string>(); resp = request.SendRequest(args); if (resp == Request.SuccessResponse) { this.ChatTextBox.Text = ""; this.ChatTextBox.Text = resp.Data; return; } if (resp == Request.NetworkErrorResponse) { this.ChatStatusLabel.Text = "Network Unreacheble"; } else { } }
public async Task <string> GetMessage([FromBody] GetMessageRequest req) { //Check hash var hashKey = SiaSkynetClient.GenerateKeys(req.Address); var cipherData = Utils.HexStringToByteArray(req.SecretHash); var decrypt = Utils.Decrypt(cipherData, hashKey.privateKey); if (decrypt == null) { throw new Exception("Invalid hash."); } string address = req.Address.ToLowerInvariant(); string seed = $"{secretConfig.SkynetSeed}-{address}"; var key = SiaSkynetClient.GenerateKeys(seed); var encryptedData = await client.DownloadFileAsByteArrayAsync(req.Skylink); var data = Utils.Decrypt(encryptedData.file, key.privateKey); return(Encoding.UTF8.GetString(data)); }
public override Task <MessageResponse> GetMessage(GetMessageRequest request, ServerCallContext context) { return(Task.FromResult(new MessageResponse { Message = this.repository.GetMessage(request.Recipient) })); }
public async Task <MessageResult> GetMessageAsyncLite( GetMessageRequest request, Delegate_outputMessage proc, TimeSpan timeout, CancellationToken token) { MessageResult result = new MessageResult(); if (string.IsNullOrEmpty(request.TaskID) == true) { request.TaskID = Guid.NewGuid().ToString(); } long recieved = 0; StringBuilder cache = new StringBuilder(); using (WaitEvents wait_events = new WaitEvents()) // 表示中途数据到来 { using (var handler = HubProxy.On < string, long, long, IList <MessageRecord>, string, string>( "responseGetMessage", (taskID, resultCount, start, records, errorInfo, errorCode) => { if (taskID != request.TaskID) { return; } if (resultCount == -1 || start == -1) { if (start == -1) { // 表示发送响应过程已经结束。只是起到通知的作用,不携带任何信息 // result.Finished = true; } else { result.Value = resultCount; result.ErrorInfo = errorInfo; result.String = errorCode; } wait_events.finish_event.Set(); return; } proc( cache, resultCount, start, records, errorInfo, errorCode); if (records != null) { recieved += GetCount(records); // records.Count; } if (errorCode == "_complete") { result.Value = resultCount; wait_events.finish_event.Set(); return; } if (resultCount >= 0 && IsComplete(request.Start, request.Count, resultCount, recieved) == true) { wait_events.finish_event.Set(); } else { wait_events.active_event.Set(); } })) { MessageResult temp = await HubProxy.Invoke <MessageResult>( "RequestGetMessage", request).ConfigureAwait(false); if (temp.Value == -1 || temp.Value == 0 || temp.Value == 2) { return(temp); } // result.String 里面是返回的 taskID await WaitAsync( request.TaskID, wait_events, timeout, token).ConfigureAwait(false); return(result); } } }
/// <summary> /// Retrieves a Message identified by the supplied resource name. /// /// The caller must have `messaging.messages.get` permission on the project. /// </summary> /// <param name="request">The request object containing all of the parameters for the API call.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>The RPC response.</returns> public virtual Message GetMessage(GetMessageRequest request, gaxgrpc::CallSettings callSettings = null) => throw new sys::NotImplementedException();
/// <summary> /// Retrieves a Message identified by the supplied resource name. /// /// The caller must have `messaging.messages.get` permission on the project. /// </summary> /// <param name="request">The request object containing all of the parameters for the API call.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>A Task containing the RPC response.</returns> public override stt::Task <Message> GetMessageAsync(GetMessageRequest request, gaxgrpc::CallSettings callSettings = null) { Modify_GetMessageRequest(ref request, ref callSettings); return(_callGetMessage.Async(request, callSettings)); }
public override Task <GetMessageResponse> GetFirstUnreadMessage(GetMessageRequest request, ServerCallContext context) { return(new MessageRequestHandler(_users, _messages).GetFirstUnreadMessage(request)); }
int _inGetMessage = 0; // 防止因为 ConnectionStateChange 事件导致重入 // 装载已经存在的消息记录 async void DoLoadMessage(string strGroupName, string strTimeRange, bool bClearAll) { if (_inGetMessage > 0) return; _inGetMessage++; try { string strError = ""; if (this.MainForm == null) return; // TODO: 如果当前 Connection 尚未连接,则要促使它连接,然后重试 load if (this.MainForm.MessageHub.IsConnected == false) { if (_redoLoadMesssageCount < 5) { AddErrorLine("当前点对点连接尚未建立。重试操作中 ..."); this.MainForm.MessageHub.Connect(); Thread.Sleep(5000); _redoLoadMesssageCount++; Task.Factory.StartNew(() => DoLoadMessage(strGroupName, strTimeRange, bClearAll)); return; } else { AddErrorLine("当前点对点连接尚未建立。停止重试。消息装载失败。"); _redoLoadMesssageCount = 0; // 以后再调用本函数,就重新计算重试次数 return; } } if (bClearAll) { this.Invoke((Action)(() => this.ClearHtml())); _lastMessage = null; } this.Invoke((Action)(() => this.HtmlWaiting(this.webBrowser1, "正在获取消息,请等待 ..."))); EnableControls(false); try { CancellationToken cancel_token = new CancellationToken(); string id = Guid.NewGuid().ToString(); GetMessageRequest request = new GetMessageRequest(id, strGroupName, // "<default>" 表示默认群组 "", strTimeRange, 0, -1); try { MessageResult result = await this.MainForm.MessageHub.GetMessageAsync( request, FillMessage, new TimeSpan(0, 1, 0), cancel_token); #if NO this.Invoke(new Action(() => { SetTextString(this.webBrowser1, ToString(result)); })); #endif if (result.Value == -1) { //strError = result.ErrorInfo; //goto ERROR1; this.AddErrorLine(result.ErrorInfo); } } catch (AggregateException ex) { strError = MessageConnection.GetExceptionText(ex); goto ERROR1; } catch (Exception ex) { strError = ex.Message; goto ERROR1; } return; } finally { EnableControls(true); this.Invoke((Action)(() => this.HtmlWaiting(this.webBrowser1, ""))); } ERROR1: this.Invoke((Action)(() => MessageBox.Show(this, strError))); } finally { _inGetMessage--; } }
/// <summary> /// Retrieves a Message identified by the supplied resource name. /// /// The caller must have `messaging.messages.get` permission on the project. /// </summary> /// <param name="request">The request object containing all of the parameters for the API call.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>The RPC response.</returns> public override Message GetMessage(GetMessageRequest request, gaxgrpc::CallSettings callSettings = null) { Modify_GetMessageRequest(ref request, ref callSettings); return(_callGetMessage.Sync(request, callSettings)); }
public GetMessageResponse GetMessage(GetMessageRequest request) { return new GetMessageResponse() { Message = "Hello " + request.Name }; }
/// <summary> /// Begin a new GetMessageRequest /// </summary> /// <param name="requestData"></param> /// <returns></returns> public GetMessageResponse GetMessageRequest(GetMessageRequest requestData) { return(JsonConvert.DeserializeObject <GetMessageResponse>(Requestor.PostString(Urls.GetMessageRequest, JsonHelper.SerializeData(requestData)).ResponseJson)); }
/// <summary> /// Retrieves a Message identified by the supplied resource name. /// /// The caller must have `messaging.messages.get` permission on the project. /// </summary> /// <param name="request">The request object containing all of the parameters for the API call.</param> /// <param name="cancellationToken">A <see cref="st::CancellationToken"/> to use for this RPC.</param> /// <returns>A Task containing the RPC response.</returns> public virtual stt::Task <Message> GetMessageAsync(GetMessageRequest request, st::CancellationToken cancellationToken) => GetMessageAsync(request, gaxgrpc::CallSettings.FromCancellationToken(cancellationToken));
int _inGetMessage = 0; // 防止因为 ConnectionStateChange 事件导致重入 // 装载已经存在的消息记录 async void DoLoadMessage(string strGroupName, string strTimeRange, bool bClearAll) { if (_inGetMessage > 0) { return; } _inGetMessage++; try { string strError = ""; if (Program.MainForm == null) { return; } // TODO: 如果当前 Connection 尚未连接,则要促使它连接,然后重试 load if (Program.MainForm.MessageHub.IsConnected == false) { if (_redoLoadMesssageCount < 5) { AddErrorLine("当前点对点连接尚未建立。重试操作中 ..."); Program.MainForm.MessageHub.Connect(); Thread.Sleep(5000); _redoLoadMesssageCount++; Task.Factory.StartNew(() => DoLoadMessage(strGroupName, strTimeRange, bClearAll)); return; } else { AddErrorLine("当前点对点连接尚未建立。停止重试。消息装载失败。"); _redoLoadMesssageCount = 0; // 以后再调用本函数,就重新计算重试次数 return; } } if (bClearAll) { this.Invoke((Action)(() => this.ClearHtml())); _lastMessage = null; } this.Invoke((Action)(() => this.HtmlWaiting(this.webBrowser1, "正在获取消息,请等待 ..."))); EnableControls(false); try { CancellationToken cancel_token = new CancellationToken(); string id = Guid.NewGuid().ToString(); GetMessageRequest request = new GetMessageRequest(id, strGroupName, // "<default>" 表示默认群组 "", strTimeRange, 0, -1); try { MessageResult result = await Program.MainForm.MessageHub.GetMessageAsync( request, FillMessage, new TimeSpan(0, 1, 0), cancel_token); #if NO this.Invoke(new Action(() => { SetTextString(this.webBrowser1, ToString(result)); })); #endif if (result.Value == -1) { //strError = result.ErrorInfo; //goto ERROR1; this.AddErrorLine(result.ErrorInfo); } } catch (AggregateException ex) { strError = MessageConnection.GetExceptionText(ex); goto ERROR1; } catch (Exception ex) { strError = ex.Message; goto ERROR1; } return; } finally { EnableControls(true); this.Invoke((Action)(() => this.HtmlWaiting(this.webBrowser1, ""))); } ERROR1: this.Invoke((Action)(() => MessageBox.Show(this, strError))); } finally { _inGetMessage--; } }
async Task <bool> DetectUser() { string strError = ""; EnableControls(false); try { using (MessageConnectionCollection _channels = new MessageConnectionCollection()) { _channels.Login += _channels_Login; MessageConnection connection = await _channels.GetConnectionAsyncLite( this.textBox_url.Text, ""); CancellationToken cancel_token = _cancel.Token; string id = Guid.NewGuid().ToString(); GetMessageRequest request = new GetMessageRequest(id, "", "gn:<default>", // "" 表示默认群组 "", "", "", "", "", 0, 1); GetMessageResult result = await connection.GetMessageAsyncLite( request, new TimeSpan(0, 1, 0), cancel_token); if (result.Value == -1) { strError = "检测用户时出错: " + result.ErrorInfo; goto ERROR1; } return(true); } } catch (MessageException ex) { if (ex.ErrorCode == "Unauthorized") { strError = "以用户名 '" + ex.UserName + "' 登录时, 用户名或密码不正确"; goto ERROR1; } if (ex.ErrorCode == "HttpRequestException") { strError = "dp2MServer URL 不正确,或 dp2MServer 尚未启动"; goto ERROR1; } strError = ex.Message; goto ERROR1; } catch (AggregateException ex) { strError = MessageConnection.GetExceptionText(ex); goto ERROR1; } catch (Exception ex) { strError = ex.Message; goto ERROR1; } finally { EnableControls(true); } ERROR1: this.Invoke(new Action(() => { MessageBox.Show(this, strError); })); return(false); }
/// <summary> /// Retrieves a Message identified by the supplied resource name. /// /// The caller must have `messaging.messages.get` permission on the project. /// </summary> /// <param name="request">The request object containing all of the parameters for the API call.</param> /// <param name="callSettings">If not null, applies overrides to this RPC call.</param> /// <returns>A Task containing the RPC response.</returns> public virtual stt::Task <Message> GetMessageAsync(GetMessageRequest request, gaxgrpc::CallSettings callSettings = null) => throw new sys::NotImplementedException();
public async Task <List <MessageResponse> > GetMessages(GetMessageRequest request) { return(await _messageService.GetMessages(request.Skip, request.Take, request.CurrentLocation, request.GettingMessagesRadiusInMeters)); }
partial void Modify_GetMessageRequest(ref GetMessageRequest request, ref gaxgrpc::CallSettings settings);