Web services 为什么可以';我不知道如何实施ONVIF标准吗?

Web services 为什么可以';我不知道如何实施ONVIF标准吗?,web-services,networking,soap,network-programming,wsdl,Web Services,Networking,Soap,Network Programming,Wsdl,我买了一台IP摄像机。然后,我发现它使用了一个名为ONVIF的标准。我搜索了一下,发现这是一个很好的方法,可以让世界上所有的摄像头都以同样的方式实现 当然,我已经阅读了ONVIF规范pdf。我对其工作原理的理解如下: 有一个WSDL文件描述如何访问相机(或其他东西)。比如,哪些设置可以修改,哪些方法可以接受等等。当我阅读这个WSDL文件时,我将选择一个方法并发送一种称为SOAP的消息,它将是一个XML,包含对WSDL文件上某个方法的响应。SOAP是一种可以通过HTTP(因此可以通过防火墙)传输的

我买了一台IP摄像机。然后,我发现它使用了一个名为ONVIF的标准。我搜索了一下,发现这是一个很好的方法,可以让世界上所有的摄像头都以同样的方式实现

当然,我已经阅读了ONVIF规范pdf。我对其工作原理的理解如下:

有一个WSDL文件描述如何访问相机(或其他东西)。比如,哪些设置可以修改,哪些方法可以接受等等。当我阅读这个WSDL文件时,我将选择一个方法并发送一种称为SOAP的消息,它将是一个XML,包含对WSDL文件上某个方法的响应。SOAP是一种可以通过HTTP(因此可以通过防火墙)传输的XML,但也可以通过其他协议发送

因此,据我所知,如果我想告诉我的相机开始流式视频,我只需要找到描述如何启动流的WSDL方法,然后发送SOAP消息,告诉它我需要在某个端口通过某个协议启动视频流。然后,我可以读取和解码流

通过了解我给出的这个简单的例子,我可以做其他事情,比如,控制摄像机等等。我不知道ONVIF的PDF是针对哪些公众的,但我不能充分理解它,所以我可以探索我的相机。例如:我不知道如何接收这个WSDL文件。我在某个地方读到,我应该访问该文件,然后向其发送一条SOAP消息并观察响应

我甚至试图通过wireshark分析这些数据包,但我觉得它们毫无意义。这很困难,因为我甚至不能让我的相机使用iSpy软件。它只能在我的android应用程序中完美运行(但没有音频或通话),所以我在raspberry pi上设置了一个代理,然后分析了数据包

有人能给我一个如何接收WSDL文件的基本示例,然后如何调用其中的一个方法吗?我想看看它在网络级别是如何工作的,但我只能找到如何调用C#中准备好处理它的库

例如:我想知道我需要通过TCP或TCP/HTTP向摄像机发送什么,以及如何初始化流。所有这些都是在网络级别实现的,根本不需要代码

我只是想在这里学习,但这似乎不是一个真正的“开放”标准。如果你从未编写过类似的程序,那就很难理解了。所以我猜那些PDF是为那些使用它的人准备的。我知道TCP和UDP是如何工作的,以及如何通过它们发送原始消息,所以这都是一个通过示例找到好资源的问题,这样我就能理解ONVIF的真正含义

互联网不能联合起来让事情变得更清楚吗?为什么没有关于它的帖子


谢谢,令人惊讶的社区ps:网络级别,没有代码,没有库,这不是学习这里是我为从符合ONVIF的IP摄像头获取快照而编写的一些代码,其他人可能会发现这些代码很有用。代码使用了gsoap工具包&注释很好,应该很容易理解。我还需要知道如何在android和iOS上实现ONVIF,但我在互联网上找不到合适的方法,有人能帮忙吗?