示例#1
0
    void OnGUI()
    {
        if (GUI.Button(new Rect(320, 40, 150, 20), "send message by API"))
        {
            AliApiClient.setPalyLoad4Request(request, "{\"volume\":25}");

            try
            {
                PubResponse response = client.GetAcsResponse(request);
                if (response.Success.HasValue && response.Success.Value)
                {
                    Debug.Log("message has sent by Aliyun API.");
                }
                else
                {
                    Debug.Log(response.ErrorMessage);
                }
            }
            catch (ServerException e)
            {
                Debug.Log(e.ErrorCode);
                Debug.Log(e.ErrorMessage);
            }
            catch (ClientException e)
            {
                Debug.Log(e.ErrorCode);
                Debug.Log(e.ErrorMessage);
            }
        }
    }
示例#2
0
        //向某一topic发布消息,注意topic,消息内容要提前进行base64编码
        private static void TestPub()
        {
            IClientProfile clientProfile = DefaultProfile.GetProfile("<your-region-id>", "<your-access-key-id>", "<your-access-key-secret>");

            DefaultAcsClient client = new DefaultAcsClient(clientProfile);

            PubRequest request = new PubRequest();

            request.ProductKey    = "<productKey>";
            request.TopicFullName = "/" + request.ProductKey + "/<deviceName>/get";

            byte[] payload    = Encoding.Default.GetBytes("Hello World.");
            String payloadStr = Convert.ToBase64String(payload);

            request.MessageContent = payloadStr;
            request.Qos            = 0;

            try
            {
                PubResponse response = client.GetAcsResponse(request);
                Console.WriteLine("publish message result: " + response.Success);
                Console.WriteLine(response.ErrorMessage);
            }
            catch (ServerException e)
            {
                Console.WriteLine(e.ErrorCode);
                Console.WriteLine(e.ErrorMessage);
            }
            catch (ClientException e)
            {
                Console.WriteLine(e.ErrorCode);
                Console.WriteLine(e.ErrorMessage);
            }
            Console.ReadKey();
        }
        public static PubResponse Unmarshall(UnmarshallerContext context)
        {
            PubResponse pubResponse = new PubResponse();

            pubResponse.HttpResponse = context.HttpResponse;
            pubResponse.RequestId    = context.StringValue("Pub.RequestId");
            pubResponse.Success      = context.BooleanValue("Pub.Success");
            pubResponse.ErrorMessage = context.StringValue("Pub.ErrorMessage");

            return(pubResponse);
        }
        public static PubResponse Unmarshall(UnmarshallerContext _ctx)
        {
            PubResponse pubResponse = new PubResponse();

            pubResponse.HttpResponse = _ctx.HttpResponse;
            pubResponse.RequestId    = _ctx.StringValue("Pub.RequestId");
            pubResponse.Success      = _ctx.BooleanValue("Pub.Success");
            pubResponse.Code         = _ctx.StringValue("Pub.Code");
            pubResponse.ErrorMessage = _ctx.StringValue("Pub.ErrorMessage");
            pubResponse.MessageId    = _ctx.StringValue("Pub.MessageId");

            return(pubResponse);
        }
示例#5
0
        //向某一topic发布消息,注意topic,消息内容要提前进行base64编码
        public void TestPub()
        {
            DefaultAcsClient client = Demo.IotClient.GetClient();

            PubRequest request = new PubRequest();

            request.ProductKey    = "<productKey>";
            request.TopicFullName = "/" + request.ProductKey + "/TZCK/get";

            byte[] payload    = Encoding.Default.GetBytes("Hello World.");
            String payloadStr = Convert.ToBase64String(payload);

            request.MessageContent = payloadStr;
            request.Qos            = 0;

            PubResponse response = client.GetAcsResponse(request);

            Console.WriteLine("publish message result: " + response.Success);
            Console.WriteLine(response.ErrorMessage);
        }
示例#6
0
    private string sendMessage(string deviceName, string topic, string message)
    {
        string text;

        if (lastDeviceName != deviceName || lastTopic != topic)
        {
            request        = AliApiClient.getRequest("r7gAvsuXY2Y", deviceName, topic);
            lastDeviceName = deviceName;
            lastTopic      = topic;
        }

        AliApiClient.setPalyLoad4Request(request, message);

        try
        {
            PubResponse response = client.GetAcsResponse(request);
            if (response.Success.HasValue && response.Success.Value)
            {
                text = message;
            }
            else
            {
                text = response.ErrorMessage;
            }
        }
        catch (ServerException e)
        {
            Debug.Log(e.ErrorCode);
            Debug.Log(e.ErrorMessage);
            text = e.ErrorMessage;
        }
        catch (ClientException e)
        {
            Debug.Log(e.ErrorCode);
            Debug.Log(e.ErrorMessage);
            text = e.ErrorMessage;
        }

        return(text);
    }
        /// <summary>
        /// 发送消息到设备
        /// </summary>
        /// <param name="device_productKey">产品Key</param>
        /// <param name="device_topic">设备topic</param>
        /// <param name="msgContent">消息内容</param>
        public static bool PubMsg(string device_productKey, string device_name, string msgContent)
        {
            IClientProfile   clientProfile = DefaultProfile.GetProfile(Config.regionId, Config.accessKeyId, Config.accessKeySecret);
            DefaultAcsClient client        = new DefaultAcsClient(clientProfile);

            try
            {
                byte[] bytes      = Encoding.UTF8.GetBytes(msgContent);
                string strContent = Convert.ToBase64String(bytes);

                PubRequest pub = new PubRequest();
                pub.ProductKey     = device_productKey;
                pub.MessageContent = strContent;
                pub.TopicFullName  = string.Format("/{0}/{1}/get", device_productKey, device_name);
                pub.Qos            = 0;
                PubResponse resp = client.GetAcsResponse(pub);
                return(true);
            }
            catch (Exception err)
            {
                Console.Write(err.Message);
                return(false);
            }
        }