SocketServer
SocketServer是在Socket通讯中进行服务端的连接配置,主要通过对服务端接口和交易的配置指定报文接收的服务端,实现Socket通讯中服务端自动接收客户端传输过来的报文信息。
服务配置
- SocketServer服务所在位置:lib==>be-esb-plugin-base-2.0.jar==>com==>brilliance==>eibs==>core==>service==>instance==>server==>SocketServer
- SocketServer插件需要继承插件共有的父类AbsServer
- 该服务需要在services.xml中进行注册和具体属性的配置
属性配置
- 在services.xml中需要对服务连接的具体属性进行配置,主要是port、interfaceName、transactionName三个属性需要严格对应
- 有默认属性的值可以不配置,采用默认属性
属性 | 描述 | 是否必须 | 示例 |
---|---|---|---|
port | 指定连接的端口号,需要和客户端连接端口号保持一致 | 是 | 10018 |
trust_ip | 服务端的ip地址,使用*号表示通配符 | 是 | 127.0.0.1 |
thread_pool_size | 线程池大小,不配置有默认属性 | 否 | 25 |
request_queue_len | 请求队列长度,不配置有默认属性 | 否 | 500 |
receive_timeout | 接收超时时间,0表示不限时长 | 否 | 0 |
interfaceName | 接口的名称,注意和服务器端接口名保持一致 | 是 | test1 |
transactionName | 服务器端交易名,需要和服务器端名称保持一致 | 是 | socketserver |
- 实际属性配置
<services state="on" hotDeploy="on"><!--hotDeploy="on"表示热部署-->
<service id="gjserverlx" state="on" type="socket"><!--state属性表示服务器开启状态-->
<property name="port" value="10018" /><!--指定连接的端口号,需要和客户端连接端口号保持一致-->
<property name="trust_ip" value="*" /><!--服务端的ip地址,使用*号表示通配符-->
<property name="thread_pool_size" value="25" /><!--线程池大小,不配置有默认属性-->
<property name="request_queue_len" value="500" /><!--请求队列长度,不配置有默认属性-->
<property name="receive_timeout" value="0" /><!--接收超时时间,0表示不限时长-->
<property name="interfaceName" value="test1" /><!--接口的名称,注意和服务器端接口名保持一致-->
<property name="transactionName" value="socketserver" /><!--服务器端交易名,需要和服务器端名称保持一致-->
</service>
</services>
示例演示
- socket服务端收报
<!--服务器端-->
<transaction id="socketserver" version="2.0">
<step id="1">
<filter ref="socketFilter" type="in" encoding="#{ENCODE}">
<!-- 读8个字节 -->
<field tag="len" etag="8" type="int"/>
<field tag="body" etag="${len}" type="string"/>
<log value="${body}"/>
<field tag="res" value="${body} ssss"/>
</filter>
<!-- 做业务逻辑 -->
<filter ref="fixedFilter" type="out">
<field etag="0" value="${res.length()}" size="8" type="int"/>
<field etag="1" value="${res}" size="${res.length()}" />
</filter>
<!-- 进行返回信息的发送 -->
<filter ref="socketFilter" type="out" encoding="#{ENCODE}">
<field value="${this}" />
</filter>
</step>
</transaction>
- 服务器端收报结果显示