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中进行注册和具体属性的配置

1666577810787

属性配置

  • 在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>
  • 服务器端收报结果显示

1666075336765

results matching ""

    No results matching ""