【问题标题】:Is it possible to design a system which will communicate with other system via socket communication as well as restful webservice是否有可能设计一个系统通过套接字通信以及restful webservice与其他系统通信
【发布时间】:2017-02-23 01:29:18
【问题描述】:

我想知道我们是否可以设计一个系统,通过 RESTful Web 服务以及通过套接字通信与其他系统进行通信?

其实我的要求是一些xml或者json形式的消息作为输入到系统中,在执行一些业务操作后会产生相应的响应。除此之外,套接字通信也可以与其他系统发生。该系统可能会以字节数组或不同格式向本单元发送消息。

现在可以开发这样的单元,它可以同时支持套接字通信以及 xml/json 吗?

【问题讨论】:

标签: web-services rest websocket spring-websocket


【解决方案1】:

我想知道我们是否可以设计一个可以通信的系统 通过 RESTful Web 服务以及通过套接字到其他系统 沟通?

是的,您可以在两个系统之间建立 webSocket 连接,也可以使用从一个系统到另一个系统的 REST 调用。这实际上在 node.js/Express 等系统中很常见。

webSocket 协议经过明确设计,可以与常规 HTTP 请求在同一端口 80 上运行。之所以这样工作,是因为每个 webSocket 连接实际上都以一个 HTTP 请求开始,该请求上面有一个特定的“升级”标头,请求切换到 webSocket 协议。因此,同一个接收服务器可以同时接收常规的 HTTP 请求和打开 webSocket 连接的请求,可以检测哪个是哪个,并可以相应地在代码中分支。

请参阅这些其他相关参考资料:

How does WebSockets server architecture work?

Why WebSocket can share the 80 port with HTTP "after the handshake"?

What's the difference between WebSocket and plain socket communication?

node js net sockets + websocket without socket.io

【讨论】:

  • 嗨@jfriend00,我想要一个TCP IP 普通套接字通信以及restful 通信。请让我知道是否可能
  • @SwarupSaha - 是的,在您自己的两个应用程序之间是可能的,但是浏览器不执行普通的 TCP/IP 套接字。它只做 Ajax 连接和 webSocket 连接。
  • 感谢您的回复。我的要求是我需要构建/设计一个系统 A,它可以使用 TCP/IP 套接字通信(假设在端口 9000)与系统 B 通信以及可以使用休息端点与系统 C 通信(比如说在端口 9001 上)。你能告诉我如何继续用 Java 构建相同的东西吗?
  • @SwarupSaha - 听起来您希望我们为您编写代码。我们不这样做。要与系统 B 通信,您将 TCP 套接字连接到该系统,然后通过该套接字执行任何您想做的事情。网络上有数百个使用 Java 中的 TCP 的示例。要在系统 C 中使用 rest 端点,您只需发出一个 HTTP 请求(使用可用于向远程服务器发出 HTTP 请求的许多不同 Java 库之一)。
  • @SwarupSaha - 我已经多次回答了你原来的问题。如果您对如何完成某种程度的细节以实现它有更详细的问题,那么您应该首先自己研究问题,找到一些相关的示例,编写一些代码,自己尝试,然后如果您卡在某个地方,您可以提出一个显示您尝试过的代码的新问题,并提出一个关于您卡在哪里的具体问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
相关资源
最近更新 更多