|
楼主 |
发表于 2010-5-11 21:59:51
|
显示全部楼层
我觉得有必要说下这个系统的构架, 它的大体设计思路, 它是如何工作的, 这样你就能了解一些事情.
首先, 物联网, 设备联网, 这些概念, 设备联网, 就是设备接入网络, 像PC一样, 插根网线上网(或者用wifi无线上网).
但是设备不是PC, 它不受人的控制, 它的行为就像PC上的的一个程序(或者说嵌入式系统上跑了一个连接网络的程序), 那么, 第一个要说明的就是: 这个设备在socket中的角色是client, 就是设备是主动连接服务器的, 我这个设计不像家庭网关, 家庭网关是一个socket server. 在我这个设计中, 设备只有两种状态: 连接上服务器,和没连接上服务器, 也就是说, 设备一上电, 就按照人设置好的, 连接服务器的ip和port.
(这也可以解释为什么要说要自己写tcp栈, 因为这个tcp栈只完成一个client的功能就够了, 代码量大大减少, )
服务器端会开放一个端口接受设备的接入, 比如: 我服务器202.194.201.182开放5000端口作为设备接入端口.
那么, 设备端要设置, 设备上电以后, 就连接202.194.201.182的5000端口, 一旦设备连上服务器, 那么一条socket连接(tcp连接)就建立了, 服务器这边会记录这个socket连接的文件描述符, 并刷新数据库, web界面是通过ajax不断更新数据库内容的, 那么, 在socket建立后, web界面会显示这个物体激活.
剩下的就是联网的设备向服务器发送数据, 等待人在web界面上点击按钮下达指令.
那么这个问题就来了, 传统的web服务器主要是web界面和数据库之间打交道, 也就是说我们看到的web界面实质内容都是放在数据库的, 在我这个设计中, 类似传统web, web界面内容也是放在数据库的, 不同的是: 有管理设备连接的程序, 不断更新这个数据库的内容, 可以这么表示:
实物---->internet----> 物联网驱动程序----->数据库 ----->web界面
也就是说: 运行这个程序, 对服务器的要求是: 要有开放socket端口服务的权限. 而我们知道, 一般的网站都是托管的, 也就是虚拟主机概念, 而虚拟主机一般是不给开socket端口做服务器权限的. 这正是问题所在.
我要求我老板给服务器未果, 原因也是在这里-----我公司现有的网站也是托管的, 而我老板承诺我相关项目完成后再弄独立的服务器.
这就是我现在没办法对外求独立主机的原因. |
|