Пример #1
0
        /// <summary>
        /// Send a SMS messages to multiple phones at once.
        /// </summary>
        /// <param name="type">Send a SMS messages to multiple phones at once.</param>
        /// <param name="nationCode">nation dialing code, e.g. China is 86, USA is 1</param>
        /// <param name="phoneNumbers">phone number array</param>
        /// <param name="msg">SMS message content</param>
        /// <param name="extend">extend field, default is empty string</param>
        /// <param name="ext">ext field, content will be returned by server as it is</param>
        /// <returns>SmsMultiSenderResult</returns>
        public SmsMultiSenderResult send(int type, string nationCode, List <string> phoneNumbers,
                                         string msg, string extend, string ext)
        {
            long random            = SmsSenderUtil.getRandom();
            long now               = SmsSenderUtil.getCurrentTime();
            JSONObjectBuilder body = new JSONObjectBuilder()
                                     .Put("tel", toTel(nationCode, phoneNumbers))
                                     .Put("type", type)
                                     .Put("msg", msg)
                                     .Put("sig", SmsSenderUtil.calculateSignature(appkey, random, now, phoneNumbers.ToArray()))
                                     .Put("time", now)
                                     .Put("extend", !String.IsNullOrEmpty(extend) ? extend : "")
                                     .Put("ext", !String.IsNullOrEmpty(ext) ? ext : "");

            HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url)
                              .addHeader("Conetent-Type", "application/json")
                              .addQueryParameter("sdkappid", this.appid)
                              .addQueryParameter("random", random)
                              .setConnectionTimeout(60 * 1000)
                              .setRequestTimeout(60 * 1000)
                              .setBody(body.Build().ToString());

            // May throw HttpRequestException
            HTTPResponse res = httpclient.fetch(req);

            // May throw HTTPException
            handleError(res);

            SmsMultiSenderResult result = new SmsMultiSenderResult();

            // May throw JSONException
            result.parseFromHTTPResponse(res);

            return(result);
        }
Пример #2
0
        /// <summary>
        /// Send a tts voice.
        /// </summary>
        /// <param name="nationCode">nation dialing code, e.g. China is 86, USA is 1</param>
        /// <param name="phoneNumber">phone number</param>
        /// <param name="templateId">template id</param>
        /// <param name="parameters">template parameters</param>
        /// <param name="playtimes">playtimes, optional, max is 3, default is 2</param>
        /// <param name="ext">ext field, content will be returned by server as it is</param>
        /// <returns>TtsVoiceSenderResult</returns>
        public TtsVoiceSenderResult send(string nationCode, string phoneNumber, int templateId,
                                         string[] parameters, int playtimes, string ext)
        {
            long random            = SmsSenderUtil.getRandom();
            long now               = SmsSenderUtil.getCurrentTime();
            JSONObjectBuilder body = new JSONObjectBuilder()
                                     .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build())
                                     .Put("tpl_id", templateId)
                                     .PutArray("params", parameters)
                                     .Put("playtimes", playtimes)
                                     .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber))
                                     .Put("time", now)
                                     .Put("ext", !String.IsNullOrEmpty(ext) ? ext : "");

            HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url)
                              .addHeader("Conetent-Type", "application/json")
                              .addQueryParameter("sdkappid", this.appid)
                              .addQueryParameter("random", random)
                              .setConnectionTimeout(60 * 1000)
                              .setRequestTimeout(60 * 1000)
                              .setBody(body.Build().ToString());

            // May throw HttpRequestException
            HTTPResponse res = httpclient.fetch(req);

            // May throw HTTPException
            handleError(res);

            TtsVoiceSenderResult result = new TtsVoiceSenderResult();

            // May throw JSONException
            result.parseFromHTTPResponse(res);

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Send single SMS message with template paramters.
        /// </summary>
        /// <param name="nationCode">nation dialing code, e.g. China is 86, USA is 1</param>
        /// <param name="phoneNumber">phone number</param>
        /// <param name="templateId">template id</param>
        /// <param name="parameters">template parameters</param>
        /// <param name="sign">Sms user sign</param>
        /// <param name="extend">extend field, default is empty string</param>
        /// <param name="ext">ext field, content will be returned by server as it is</param>
        /// <returns>SmsSingleSenderResult</returns>
        public SmsSingleSenderResult SendMessage(TencentMessage tencentMessage)
        {
            long random            = SmsSenderUtil.getRandom();
            long now               = SmsSenderUtil.getCurrentTime();
            JSONObjectBuilder body = new JSONObjectBuilder()
                                     .Put("tel", (new JSONObjectBuilder()).Put("nationcode", tencentMessage.NationCode).Put("mobile", tencentMessage.PhoneNumber).Build())
                                     .Put("sig", SmsSenderUtil.calculateSignature(appkey, random, now, tencentMessage.PhoneNumber))
                                     .Put("tpl_id", tencentMessage.TemplateId)
                                     .PutArray("params", tencentMessage.Parameters)
                                     .Put("sign", !String.IsNullOrEmpty(tencentMessage.Sign) ? tencentMessage.Sign : "")
                                     .Put("time", now)
                                     .Put("extend", !String.IsNullOrEmpty(tencentMessage.Extend) ? tencentMessage.Extend : "")
                                     .Put("ext", !String.IsNullOrEmpty(tencentMessage.Ext) ? tencentMessage.Ext : "");
            HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url)
                              .addHeader("Conetent-Type", "application/json")
                              .addQueryParameter("sdkappid", this.appid)
                              .addQueryParameter("random", random)
                              .setConnectionTimeout(60 * 1000)
                              .setRequestTimeout(60 * 1000)
                              .setBody(body.Build().ToString());
            // May throw HttpRequestException
            HTTPResponse res = httpclient.fetch(req);

            // May throw HTTPException
            handleError(res);
            SmsSingleSenderResult result = new SmsSingleSenderResult();

            // May throw JSONException
            result.parseFromHTTPResponse(res);
            return(result);
        }
Пример #4
0
        private HTTPResponse pull(int type, string nationCode, string mobile, long beginTime,
                                  long endTime, int max)
        {
            long random            = SmsSenderUtil.getRandom();
            long now               = SmsSenderUtil.getCurrentTime();
            JSONObjectBuilder body = new JSONObjectBuilder();

            body.Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now))
            .Put("type", type)
            .Put("time", now)
            .Put("max", max)
            .Put("begin_time", beginTime)
            .Put("end_time", endTime)
            .Put("nationcode", nationCode)
            .Put("mobile", mobile);

            HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url)
                              .addHeader("Conetent-Type", "application/json")
                              .addQueryParameter("sdkappid", this.appid)
                              .addQueryParameter("random", random)
                              .setConnectionTimeout(60 * 1000)
                              .setRequestTimeout(60 * 10000)
                              .setBody(body.Build().ToString());

            // May throw HttpRequestException
            HTTPResponse res = httpclient.fetch(req);

            // May throw HTTPException
            handleError(res);

            return(res);
        }
Пример #5
0
        public void OnRemotePlayerMovement_MovePlayerGameObject()
        {
            // Given
            const float horizontal = 1f;
            const float vertical   = 2f;
            var         jobj       = JSONObjectBuilder.Empty()
                                     .WithPlayerId("TEST_ID")
                                     .WithMovementCoordinates(horizontal, vertical)
                                     .WrapAsPayload();
            var         socketEvent = SocketIOEventBuilder.New("test").WithData(jobj).Build();
            const float time        = 0.123f;

            unityTimeProxyMock.Setup(x => x.deltaTime).Returns(time);
            const float movementSpeed = 12f;
            const float rotationSpeed = 7f;

            controller.SetMovementSpeed(movementSpeed);
            controller.SetRotatonSpeed(rotationSpeed);

            // When
            Debug.Log(fakePlayerInstance.transform.position);
            controller.OnRemotePlayerMovement(socketEvent);
            Debug.Log(fakePlayerInstance.transform.position);

            // Then
            unityGameObjectProxyMock.Verify(x => x.Find("Player:TEST_ID"), Times.Once);
            const float rotationAngle = horizontal * rotationSpeed * time * Mathf.Rad2Deg;

            Assert.AreEqual(vertical * movementSpeed * time, fakePlayerInstance.transform.position.x);
            Assert.AreEqual(rotationAngle, fakePlayerInstance.transform.rotation.y);
        }
        private static SocketIOEvent BuildSocketIOEventWithPlayer(string eventName, string playerId, float posX = 0F, float posY = 0F, float posZ = 0F)
        {
            var jobj = JSONObjectBuilder.Empty()
                       .WithPayload(BuildJSONObjectWithPlayerId(playerId, posX, posY, posZ))
                       .Build();
            var socketEvent = SocketIOEventBuilder.New(eventName).WithData(jobj).Build();

            return(socketEvent);
        }
        private static JSONObject BuildJSONObjectWithPlayerId(string playerId, float posX = 0F, float posY = 0F, float posZ = 0F)
        {
            var jobj = JSONObjectBuilder.Empty()
                       .WithPlayerId(playerId)
                       .WithField(SOCKET_DATA_FIELDS.PlayerId, playerId)
                       .WithPositionObject(posX, posY, posZ)
                       .Build();

            return(jobj);
        }
        private static SocketIOEvent BuildOnPlayerReceivedEvent(List <JSONObject> players)
        {
            var jobj = JSONObjectBuilder.Empty()
                       .WithField(SOCKET_DATA_FIELDS.Payload, players)
                       .Build();
            var socketEvent = SocketIOEventBuilder.New("test").WithData(jobj).Build();
            var data        = socketEvent.data.GetField("players");

            return(socketEvent);
        }
 private void BuildFakeEvent()
 {
     fakeEvent = new GameEvent
     {
         Name    = "TEST",
         Payload = JSONObjectBuilder.Empty()
                   .WithField("a", 1.23F)
                   .WrapAsPayload()
     };
 }
        private static SocketIOEvent BuildPlayerInitialPositionSocketEvent(float posX, float posY, float posZ)
        {
            var data = JSONObjectBuilder.Empty()
                       .WithPosition(posX, posY, posZ)
                       .WrapAsPayload();

            var socketEvent = SocketIOEventBuilder.Empty(SOCKET_EVENTS.ServerWelcome)
                              .WithData(data)
                              .Build();

            return(socketEvent);
        }
Пример #11
0
        private JArray toTel(string nationCode, List <string> phoneNumbers)
        {
            JSONArrayBuilder builder = new JSONArrayBuilder();

            foreach (var phoneNumber in phoneNumbers)
            {
                JSONObjectBuilder phone = new JSONObjectBuilder();
                phone.Put("nationcode", nationCode);
                phone.Put("mobile", phoneNumber);
                builder.Put(phone.Build());
            }

            return(builder.Build());
        }