在NAT后面实现restful Web服务
implement restful webservice behind NAT
据我所知,在NAT后面的设备上实现rest Web服务是不可能的。所以我一直在寻找一些解决方案。
是否可以使用long polling
来实现Web服务?这样,本地设备将调用远程客户端(这正是我想要的),客户端必须保持连接打开(保持活动?),直到客户端想要调用webservice方法。它可以这样做,因为连接仍然打开。呼叫后,客户端将立即向客户端发送另一个轮询。。。等有可能以这种方式实施吗?
我遇到的另一个解决方案:
ReverseHTTP-我对此不太了解,但听起来我可以用它实现Web服务。正确的
还有其他几种解决方案,如TURN或STUN,但它们似乎非常复杂。
你有什么建议吗?我在网络设备上使用c++/linux。
编辑:端口转发不是一个选项。
这个问题中有很多不同的概念。您当然可以在防火墙/NAT后面实现RESTful服务。。。您只需要配置防火墙/NAT即可将连接转发到您的服务。存在防火墙/NAT设备超时连接的问题。。。在这里,你可以再次配置你的设备不这样做,或者你可以用某种"保持活力"来更新你的通信机制。"长轮询"在某种程度上是不相关的,它被用作从服务器获得"交互式响应"的一种方式。。。基本上,服务器会处理来自客户端的轮询请求,直到它有东西可以响应,或者请求超时,客户端发出另一个请求。STUN和TURN是更多与语音/视频通信相关的技术。我建议从简单地让你的防火墙/NAT设备将基于网络的请求转发到你的网络服务器开始。
您没有说明您使用的传输协议,我假设是HTTP。
HTTP使用TCP/IP,因此您的设备NAT需要将连接请求重定向到服务器。
还有其他方法,比如如果你有多个互联网IP地址,那么请求也可以指向服务器,但这比端口转发更复杂,所以我认为这不是你所拥有的。
因此,基本上您需要配置端口转发。就像PABX一样,从外线打来的电话需要知道一个ramal才能接通电话,这是一个遥远的想法。
如前所述,你所说的建议并不是为了这个目的,主要是为了客户端连接,对于许多NAT来说,这是不必要的,因为NAT已经做好了这样做的准备。
- 用于将C++代码转换为 Web 程序集的脚本未终止
- C# DLL 从C++应用程序调用 SOAP Web 服务
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- 用于 progmem 的C++和头文件压缩的 Web 文件字节数组
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 使用 ESP8266/8285 将字符串从 Web 服务器转换为字节数组
- 在 c++ WWSAPI Web 服务中处理 WS-Security PasswordDigest 模式
- libtorrent是否支持带摘要身份验证的http web种子
- 我的web应用程序的用户需要在浏览器上手动启用本机客户端吗
- Java JNI GDAL 本机库在重新部署为 Web 应用程序时出现类加载器错误
- 如何捕获从 MFC Web 浏览器 c++ 发出的 GET/POST 请求
- 在能够从 Web 浏览器访问大型数组数据的同时存储它的最可行方法是什么?
- 如何为C Web开发配置LAMPP
- 在C/C 接受JSON中创建REST Web服务
- Boost-Beast 异步 Web 套接字 服务器-客户端异步读写 不在控制台上写入输出
- 用于管理 CATIA 文件的 Web 应用程序
- 在NAT后面实现restful Web服务
- 如何使用c++语言和JSON解析器创建Restful Web服务
- 如何用c++实现一个支持HTTPS的RESTful Web服务器
- web服务-适用于我的c/c++库的swig、soap或restful