“双向通讯”，是重要的[协议特点](/article/743)之一。即：

客户端与服务端连通后。谁都可以是“发送端”（或请求者）、“接收端”（或响应者）

### 1、从功能角度

通讯可以更自由。就像打电话，在一个线路上，你可以对我讲话，我也可以对你讲话。从软件技术上讲，就是你可以调我的接口，我也可以调你的接口。


### 2、从安全角度

* 无集群方案 

“原业务客户端”，启动 socket.d server 服务。“原业务服务端” 可以无端口启动，以 socket.d client 身份连入。之后“原业务客户端”通过 session ，向“原业务服务端”发送消息（或请求）。后面有：[简单的代码演示](/article/706)。

下面是一个“反向服务“（可能也叫“内网穿透”）案例（会有很多客户会要求不能开放内网）：

<img src="/img/688d92ee32774477b1d9cb899f96c598.png" width="400" />

* 集群方案

启动一个 Broker 节点，做为 socket.d server。其它所有服务无端口启动，以 socket.d client 身份连上，并相互通讯（详情，看后面的集群介绍）。