Last Updated on : 2024-09-11 08:40:13
A cloud project provides the message subscription feature. If the device status in the project changes, such as registration, data reporting, and offline events, Message Service is used to actively push event data to external partners with Pulsar. This helps to implement real-time and persistent messages.
Currently, Tuya Smart Message Service is customized and modified based on open source Pulsar. The Pulsar SDK for C# is provided. In this topic, the C# development tool Rider is used to receive messages.
Click Pulsar SDK to download the package to the local computer and decompress the package.
Use Rider to open the source code project: Click New Solution to create a solution.
On the New Solution page, select Console Application, enter the solution name in the field of Solution name, select C#
for Language and net5.0
for Framework, and then click Create.
Copy the downloaded source code to the Program.cs file in the development project.
Add the dependency packages. The project requires the following dependency packages:
In the top navigation bar, choose Tools > NuGet > Manage NuGet Packages for Solution to open the NuGet manager.
Enter the name of the package to be installed, select the desired one, select a version number from the drop-down list of Version, and click + to install it.
The following figure shows how to install Newtonsoft.Json.
Click Install to confirm the installation.
The following figure shows how to install System.Net.WebSockets:
Modify the parameters in the sample code Program.cs. This topic takes the test channel as an example.
// accessId, accessKey,serverUrl,MQ_ENV
private static string ACCESS_ID = "xt*****ff**n1****8ufo";
private static string ACCESS_KEY = "479bcb7345******582d9c******4ef7";
private static string WSS_SERVER_URL = "wss://mqe.tuyacn.com:8285/";
private static string MQ_ENV= MQ_ENV_TEST;
The parameters are described as follows.
ACCESS_ID
: Enter the value of Access ID in the Authorization Key section on the Tuya IoT Development Platform.
ACCESS_KEY
: Enter the value of Access Secret in the Authorization Key section on the Tuya IoT Development Platform.
WSS_SERVER_URL
: Be sure to use the URL of the specified domain name where the private cloud is deployed.
MQ_ENV
: the message subscription channel.
MQ_ENV_PROD
represents the production environment.MQ_ENV_TEST
represents the test environment.In the MQ_ENV
, MQ_ENV_TEST represents the test environment and MQ_ENV_PROD represents the production environment.
The messages reported by the test device will be sent through the test channel to accelerate debugging of device functions.
On the development tool Rider, right-click the Pulsar-demo project and select Run ‘Pulsar-demo’ to run it.
Control the device with a mobile app.
Automatically get the push messages on Rider.
Display the data. For more information about field descriptions, see Message Types.
Received message
payload={"data":"uSqWibG1DRsqYj/EWW5xRP4NlAo948wkhatFSvvtl3lgYzHRCUfLB8bAhjohz5jqzQtf9wFhkSQ6IBE2P3yYPmXksA0dqEMhr3RmkClnnfWt9xi+AvqZ5E3OZgI3dkpaD+3oi9XCRpgXXnjyjoyXPxk8qvcNe3J+kdU32jkbjxlzxxG+g6m1fHPH7m4+OHuh8Q09f8Ff1CNONQFvMLfStqmh6zyXimOxTy0x9pIPxUPxHwhUndn4xepP09qbODn0","protocol":4,"pv":"2.0","sign":"16cc5405b1e843bdd6f25063fa8ce330","t":1631158677498}
payloadJson={
"data": "uSqWibG1DRsqYj/EWW5xRP4NlAo948wkhatFSvvtl3lgYzHRCUfLB8bAhjohz5jqzQtf9wFhkSQ6IBE2P3yYPmXksA0dqEMhr3RmkClnnfWt9xi+AvqZ5E3OZgI3dkpaD+3oi9XCRpgXXnjyjoyXPxk8qvcNe3J+kdU32jkbjxlzxxG+g6m1fHPH7m4+OHuh8Q09f8Ff1CNONQFvMLfStqmh6zyXimOxTy0x9pIPxUPxHwhUndn4xepP09qbODn0",
"protocol": 4,
"pv": "2.0",
"sign": "16cc5405b1e843bdd6f25063fa8ce330",
"t": 1631158677498
}
Parse payload data
data={"dataId":"52effb10-111f-11ec-935e-02426139acc4","devId":"vde*******70149816","productKey":"AAi******Tgmo64Hq","status":[{"1":"true","code":"switch_led","t":1631158677476,"value":true}]}
For more information about the payload data parsing method, see Data Signature. The payload decryption method DecryptByAes has been encapsulated in the SDK.
Received message
payload={"data":"vJuyzlQPkXrZn/9OSwTOP5bmlNruRVFOZoc1Zod3Ul9gYzHRCUfLB8bAhjohz5jqzQtf9wFhkSQ6IBE2P3yYPmXksA0dqEMhr3RmkClnnfWt9xi+AvqZ5E3OZgI3dkpaD+3oi9XCRpgXXnjyjoyXP4F82++oke4J6O8vAvLCpDxsOTqBLnuQXj9p+sknAK6Z1NAGbES2LQ4fDPlg/ZFqoccIX3s9PhIo9cPZSzctc9MrqoBg1e7jFRfIAiY3bPYx","protocol":4,"pv":"2.0","sign":"53b8014e0c2d445e8dca665a02236100","t":1631158740025}
payloadJson={
"data": "vJuyzlQPkXrZn/9OSwTOP5bmlNruRVFOZoc1Zod3Ul9gYzHRCUfLB8bAhjohz5jqzQtf9wFhkSQ6IBE2P3yYPmXksA0dqEMhr3RmkClnnfWt9xi+AvqZ5E3OZgI3dkpaD+3oi9XCRpgXXnjyjoyXP4F82++oke4J6O8vAvLCpDxsOTqBLnuQXj9p+sknAK6Z1NaAGbES2LQ4fDPlg/ZFqoccIX3s9PhIo9cPZSzctc9MrqoBg1e7jFRfIAiY3bPYx",
"protocol": 4,
"pv": "2.0",
"sign": "53b8014e0c2d445e8dca665a02236100",
"t": 1631158740025
}
Parse data
data={"dataId":"782ee45f-111f-11ec-935e-02426139acc4","devId":"vde*******70149816","productKey":"AAi******Tgmo64Hq","status":[{"3":"177","code":"bright_value","t":1631158739964,"value":177}]}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback