コード例 #1
0
        public SendMessageResponse Send(OutgoingPushMessageList list)
        {
            WebSocketRequestMessage requestmessage = new WebSocketRequestMessage()
            {
                Id   = BitConverter.ToUInt64(Util.getSecretBytes(sizeof(long)), 0),
                Verb = "PUT",
                Path = $"/v1/messages/{list.getDestination()}",
                Body = ByteString.CopyFrom(Encoding.UTF8.GetBytes(JsonUtil.toJson(list)))
            };

            requestmessage.Headers.Add("content-type:application/json");
            var t = Websocket.SendRequest(requestmessage);

            t.Wait();
            if (t.IsCompleted)
            {
                var response = t.Result;
                if (response.Item1 < 200 || response.Item1 >= 300)
                {
                    throw new IOException("non-successfull response: " + response.Item1 + " " + response.Item2);
                }
                return(JsonUtil.fromJson <SendMessageResponse>(response.Item2));
            }
            else
            {
                throw new IOException("timeout reached while waiting for confirmation");
            }
        }