物理设备的网络服务,要使用哪种技术/协议?

时间:2018-07-16 10:10:44

标签: web-services device

(请注意,我是自学初学者)

我正在为要在网络中连接的设备开发Web服务器。它的服务将主要用于本地大型网络,而不是Internet。

具体来说,该设备是车底检查系统(UVIS),当车辆通过并对其进行一些处理时,它会记录视频,然后将其发送到连接的授权本地客户端以进行查看和数据库(即基于事件的系统)。

首先,我搜索了打印机Web服务(网络打印机)使用的技术/协议,发现有针对打印机的特定协议,有些甚至是某些制造商所专有的。

我遇到了WS- *堆栈,(实际上,我已经做了一个简单的实现,使用WS-Discovery查找IP摄像机,并使用了Onvif规范定义的某些功能使用SOAP),但是我发现这种情况很复杂,不确定是否值得冒险去这个世界冒险。对此进行了一些搜索,发现它主要用于Windows系统(实际上,微软是这些标准的主要开发者)。

我正在寻找其他具有发现功能,易于实现,可与其他设备集成,广泛使用和面向未来的技术/协议。

有人可以启发我吗?

直到现在,我的计划是使用WS-Discovery(因为它具有IANA保留的多播地址)来获取Websocket uri,并在此基础上实现我自己的简单协议。我选择websocket而不是普通套接字,因为它有机会与浏览器应用程序一起使用。

1 个答案:

答案 0 :(得分:0)

如果您要录制视频,则想实时流式传输(查看高端IP摄像机使用的RTSP协议,可以在gstreamer或vlc中找到实现),或者如果要拉动视频录制为文件后,只需使用普通的网络上传系统即可。

可能是您的摄像机记录了视频,但无论如何仍可能以RTSP的形式发送数据供稿,因此您可能只需要连接到该供稿即可。

无论如何,这些天我都将使用Web协议,无需重新发明轮子。有许多用于嵌入式系统的Web服务器(开源civetweb是非常简单和有效的工具)。然后,您将使用已建立的通用Web服务来创建程序。易于构建,几乎每个人都很好理解。

WS- *协议很复杂,如果您无法使一个库正常工作,那么只需在网络的DNS中注册服务器服务并让每个客户端(通过REST API调用)来告知它,痛苦可能会减轻很多))当前的IP地址是什么。不过,从一开始就将每台设备注册到网络的DNS服务器会更加容易,以发现可用的设备,然后只需ping通每个设备即可。