1.一种物联网设备间云端双向虚拟连接的方法,用于实现第一物联网设备与第二物联网设备之间的云端双向虚拟连接,采用TCP Socket的形式将接入接口提供给第一物联网设备与第二物联网设备,其特征在于:包括建立连接服务进程模块和连接工作线程模块,开辟数据交换模块,其中连接服务进程模块通过如下方式运行:连接服务进程模块首先建立主套接字,绑定TCP/IP协议、本地地址和本地端口,然后进入到监听状态,当第一物联网设备或第二物联网设备连接所述主套接字时,创建子套接字,如果连接的设备为第一物联网设备,则创建用于与第二物联网设备进行通信的第一连接工作线程;如果连接的设备为第二物联网设备,则创建用于与第一物联网设备进行通信的第二连接工作线程;
数据交换模块,包括第一缓存区和第二缓存区;
连接工作线程模块,包括连接服务进程模块创建的第一连接工作线程和第二连接工作线程,其中第一连接工作线程将从第一物联网设备收到的第一类数据放到数据交换模块的第一缓存区中,并从数据交换模块的第二缓存区中读取的第二类数据发送给第一物联网设备;第二连接工作线程将从第二物联网设备收到的第二类数据放到数据交换模块的第二缓存区中,并从数据交换模块的第一缓存区中读取第一类数据发送给第二物联网设备,从而实现第一物联网设备与第二物联网设备之间的双向数据交换。
2.根据权利要求1所述的物联网设备间云端双向虚拟连接的方法,其特征在于:所述第一缓存区和第二缓存区采用基于散列映射的数据缓存区;
当第一连接工作线程接收到来自第一物联网设备的第一类数据时,以第一物联网设备的ID为密钥计算哈希码值,然后将该第一类数据放入第一缓存区中与哈希码值对应的位置中;当第二物联网设备需要获得第一物联网设备的第一类数据时,与该第二物联网设备对应的第二连接工作线程以第一物联网设备的ID为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的位置获得相应的第一类数据,从而实现第一类数据从第一物联网设备向第二物联网设备的流动;
当多个分别与不同第二物联网设备对应的第二连接工作线程需要同时获得第一物联网设备的第一类数据时,同样以第一物联网设备的ID为密钥计算哈希码值,从第一缓存区相中与哈希码值对应的位置获得相应的第一类数据,从而实现第一类数据从第一物联网设备同时向多个第二物联网设备的流动;
当第二连接工作线程接收到来自第二物联网设备的第二类数据时,以第二物联网设备的ID为密钥计算哈希码值,然后将该第二类数据放入第二缓存区中与哈希码值对应的位置中;当第一物联网设备需要获得第二物联网设备的第二类数据时,与该第一物联网设备对应的第一连接工作线程以第二物联网设备的ID为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的位置获得相应的第二类数据,从而实现第二类数据从第二物联网设备向第一物联网设备的流动;
当多个分别与不同第一物联网设备对应的第一连接工作线程需要同时获得第二物联网设备的第二类数据时,同样以第二物联网设备的ID为密钥计算哈希码值,从第二缓存区相中与哈希码值对应的位置获得相应的第二类数据,从而实现第二类数据从第二物联网设备同时向多个第一物联网设备的流动。
3.根据权利要求1或2所述的物联网设备间云端双向虚拟连接的方法,其特征在于:所述数据交换模块还包括第三缓冲模块,其中第一连接工作线程将从第一物联网设备收到的第三类数据放到数据交换模块的第三缓存区中,第二连接工作线程还能从数据交换模块的第三缓存区中读取第三类数据发送给第二物联网设备。
4.根据权利要求3所述的物联网设备间云端双向虚拟连接的方法,其特征在于:还包括建立数据库,该数据库更新的时间间隔为8S~15S,即每隔8S~15S数据库会从数据交换模块的第三缓冲模块内下载并更新第三类数据,从而将第三类数据进行保存。
5.根据权利要求4所述的物联网设备间云端双向虚拟连接的方法,其特征在于:所述第一物联网设备为智能设备,第二物联网设备为智能终端;所述第一类数据为智能设备的感知数据;所述第二类数据为第二物联网设备对第一物联网设备的操控指令;所述第三类数据为智能设备的状态数据。