Thingslink 开发平台(http://thingslink.qwulian.cn)组成
Thingslink server :提供开发者使用的通讯信息传输平台
Thingslink 开发者平台:开发者管理应用有关的平台,App、client、sensor、用户、日志等数据的管理
天洞:thingslink 平台的各个应用的用户平台,开发者可以直接提供给终端用户使用。
蛋蛋物联:是基于Thingslink平台,独立应用【蛋蛋远程控制】的用户平台,也是Thingslink 应用的案例产品。有需要独立用户系统的开发者可以联系建立,也可以独自开发。
Thingslink 平台支持的协议
Socket:用户可以开发自己的终端,接入平台使用。具体请参考协议说明。
MQTT:内测,暂未开通。
Thingslink 平台相关模拟软件和终端软件
ThingslinkService :信息中转服务器,连接用户和客户端
ThingslinkClientSum (*载下**): C# 模拟客户端。
ThingslinkClientSum (*载下**): Java 模拟客户端。
ThingslinkUserControl(*载下**): C# 模拟用户发送命令
硬件Demo产品(低价购买):和硬件连接控制
蛋蛋物联App:此款App是专属蛋蛋物联使用的,需要测试或者尝试请到蛋蛋物联平台*载下**。另外,Thingslink 平台也支持给各位开发者通过专属App 供开发者提供给用户使用。
开发者教程
如何获取开发者权限
1、注册Thingslink平台
—请开发者注册 Thingslink 开发者,http://open.thingslink.qwulian.cn/
2、申请开发者认证
—手机和邮件注册通过,即可使用。
3、获取AppKey和AppSec
— 账号登录后,在AppKey管理-我的APP可以申请获得。
4、创建自己Client,获取ClientID
— 获得AppKey后,再去Client管理-我的Client获取ClientID
5、Sensor 设置
— 根据需要和自己的产品规格配置Sensor信息,一个Client 终端可以配置多个Sensor
6、天洞用户系统
— 登录天洞系统(http://tiandong.thingslink.qwulian.cn) 或者登录App 查看管理终端
接下来就是完成你自己的产品。
1、Thingslink物联网终端开发协议说明https://www.toutiao.com/i6680449356765594120/
开发者终端实现步骤:
1、连接服务器tcp:sip.iot.open.qwulian.cn:5081 端口。
—tcpClient.Connect(host, port)
2、发送命令格式(client or user)
— socketFlag[0] = (byte)1;// 1 client
—tcpClient.Client.Send(socketFlag, SocketFlags.None)
3、登录命令(客户端认证):这个和用户登录一同进行。
— 用户登录 (数据长度(4位)+命令长度(4位)+命令内容)
命令内容(命令Item 为换行分割\r\n):{
AppKey={appkey}
AppSec={appsec}
Command=Login
UserName={username} #用户登录名
Password={pwd} #密码
}
— 终端登录 (数据长度(4位)+命令长度(4位)+命令内容)
命令内容(命令Item 为换行分割\r\n):{
AppKey={appkey}
AppSec={appsec}
Command=Login
ClientID={clientID}
}
SendCommand(“AppKey={appkey}\r\nAppSec={appsec}\r\nCommand=Login\r\nClientID={clientID}”)
4、发送命令给指定的client。
— 信息传输 (数据长度(4位)+命令长度(4位)+命令内容)
命令内容(命令Item 为换行分割\r\n):{
Command=Route
ClientID={clientID} // 目标ClientID, 终端发送同时发送给User,终端发送时可以为空
Item={自定义协议} //自定义协议为开发者应用需要协议内容协议不能使用“=”和“\r\n” 作为内容和分隔
}
SendCommand(“Command=Route\r\nClientID={clientID}\r\nItem={自定义协议}”)
C#代码举例说明:
public void Connect(string host, int port)
{
tcpClient.Connect(host, port);
byte[] socketFlag = new byte[1];
socketFlag[0] = (byte)1;//1:终端设备
tcpClient.Client.Send(socketFlag, SocketFlags.None); //发送标识
}
//发送命令
public void SendCommand()
{
string commandText = “{content}”;
byte[] bufferUTF8 = Encoding.UTF8.GetBytes(commandText);
int totalLength = sizeof(int) + bufferUTF8.Length; //获取总大小
m_sendBuffer.Clear();
m_sendBuffer.WriteInt(totalLength, false); //写入总大小
m_sendBuffer.WriteInt(bufferUTF8.Length, false); //写入命令大小
m_sendBuffer.WriteBuffer(bufferUTF8); //写入命令内容
tcpClient.Client.Send(m_sendBuffer.Buffer, 0, m_sendBuffer.DataCount, SocketFlags.None); //使用阻塞模式
}}