Kri*_*a P 58 rest xmpp websocket
我计划开发一个基于Web的聊天应用程序,它接收ReSTful请求,将它们转换为XMPP并将它们传送到XMPP服务器.
对于这种基于聊天的应用程序使用websockets看起来很有希望,因为事件(或响应)可以异步传递.但是,如果我使用websockets作为从浏览器传输请求的底层协议,这仍然可以被视为ReSTful设计吗?如果是,那么在websocket消息中如何表示URI,动词(GET,POST ...)参数?将它们包装在xml/json中并发送它?
此外,ReSTful架构声明服务器上不会存储任何会话状态.但是在这种情况下,当创建XMPP客户端会话时,此会话的状态将存储在服务器上(违反无状态约束)
Dan*_*edo 60
REST是一种不强加协议的架构风格.所以,是的,如果你愿意,可以使用Web套接字,使用HTTP的REST和使用FTP的REST进行REST.
使用HTTP的主要原因是通过HTTP与任何组件或编程语言进行通信既简单又相当简单,并且因为HTTP支持具有多个中介的分布式环境:代理,防火墙......; 因此,您可以在任何拓扑上部署您的服务,任何人都可以访问它.
我的咆哮: 如果你是一个RESTliban并且Roy Fielding的论文是真理的来源,那么动词永远不会被认为是语义的一部分.URI是语义.对不同动作使用不同的动词是REST over HTTP的优雅演变,但不是"真相"的一部分.您可以在他的论文的第六章中查看Roy评估的剩余HTTP方案.没有提到动词.请注意,这是一个评估方案,而不是规范.
TLDR;
如果您需要通过互联网进行实时双向通信,而客户端是Web浏览器,则最佳选择是Web套接字.然后,您可以在Web套接字上实现应用程序级协议,以实现RESTful Web服务.
jde*_*bel 16
是.您可以将REST over WebSocket与 SwaggerSocket等库一起使用.
sai*_*ama 10
为什么要在socket上构建REST API?恕我直言,REST API的好处是利用标准的HTTP协议可能性,如无状态请求,语义动词(如GET,DELETE)来构建一个(客户端)开发人员可以轻松理解的API.由于套接字不提供HTTP动词等,你可以为套接字构建某种HTTP层,这是恕我直言,这是不合理的.
如果您真的要构建这样的东西,我建议使用HTTP协议作为蓝图并实现像HTTP这样的套接字协议.
| 归档时间: |
|
| 查看次数: |
45396 次 |
| 最近记录: |