public string SendMessage([FromBody] PushRequestModel model) { UserGroup userGroup; _userGroups.TryGetValue(model.GroupName, out userGroup); if (userGroup != null) { Log.Instance.Info("GroupName:" + model.GroupName + "Connected Users:" + userGroup.Users.Count); try { Parallel.ForEach(userGroup.Users, new ParallelOptions() { MaxDegreeOfParallelism = 1000 }, userId => { try { var user = _users.FirstOrDefault(x => x.Key == userId); if (user.Value != null) { if (user.Value.State == WebSocketState.Open) { var buffer = new ArraySegment <byte>(Encoding.UTF8.GetBytes(model.Message)); user.Value.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None) .Wait(200); } else { RemoveUser(user.Key); } } else { RemoveUser(user.Key); } } catch (Exception) { RemoveUser(userId); } }); return("Message Sent To " + userGroup.Users.Count); } catch (Exception exception) { Log.Instance.Info(exception, "Err On SendMessageToAll"); } } return("UserGroup Is Null"); }
public async Task <HttpResponseMessage> Push(PushRequestModel model) { var message = new Message { Token = model.DeviceToken, Notification = new Notification { Title = model.Title, Body = model.Description } }; var responseContent = await FirebaseMessaging.DefaultInstance.SendAsync(message); var response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(responseContent, System.Text.Encoding.UTF8, "application/json"); return(response); }
public PushResponseModel sendPush([FromBody] PushRequestModel pushRequest) { PushResponseModel response = new PushResponseModel(); try { var re = Request; var headers = re.Headers; if (!headers.ContainsKey("api_key")) { Response.StatusCode = 403; response.STATUS = "API key bulunamadı"; return(response); } else { //TODO CHECK API KEY } if (pushRequest.platform == null) { Response.StatusCode = 400; response.STATUS = "Lütfen platform belirtin"; return(response); } else { //TODO check platform } if (pushRequest.deviceToken == null) { Response.StatusCode = 400; response.STATUS = "Lütfen deviceToken belirtin"; return(response); } if (pushRequest.title == null) { Response.StatusCode = 400; response.STATUS = "Lütfen title belirtin"; return(response); } if (pushRequest.body == null) { Response.StatusCode = 400; response.STATUS = "Lütfen body belirtin"; return(response); } response.STATUS = "SUCCESS"; return(response); } catch (Exception e) { Response.StatusCode = 500; response.STATUS = "Sunucu hatası, lütfen daha sonra deneyiniz."; return(response); } }
// POST: api/SendPush public IHttpActionResult Post(PushRequestModel req) { try { var headers = Request.Headers; if (!headers.Contains("api_key")) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)403, new HttpError("API key bulunamadı") ) )); } string token = headers.GetValues("api_key").First(); if (token != "test") { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)401, new HttpError("API key geçersiz") ) )); } if (String.IsNullOrEmpty(req.platform)) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)400, new HttpError("Lütfen platform belirtin") ) )); } if (String.IsNullOrEmpty(req.deviceToken)) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)400, new HttpError("Lütfen deviceToken belirtin") ) )); } if (String.IsNullOrEmpty(req.title)) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)400, new HttpError("Lütfen title belirtin") ) )); } if (String.IsNullOrEmpty(req.body)) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)400, new HttpError("Lütfen body belirtin") ) )); } } catch (Exception ex) { return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateErrorResponse( (HttpStatusCode)500, new HttpError("Sunucu hatası, lütfen daha sonra deneyiniz.") ) )); } return(new System.Web.Http.Results.ResponseMessageResult( Request.CreateResponse( (HttpStatusCode)200, "SUCCESS" ) )); ; }