ShortSocket
服务配置
- 需要先在serivces.xml中进行服务端配置。
- 属性id,state为必配项,其他为可选项;
- 当services与service的state其中有一个为off时,服务接口就关闭;
属性说明
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
id | 标识 | string | 能表达通道含义的名字如testService |
state | 服务状态开关 | string | on:启动 off:关闭 启动服务端时是否启动该接口 |
type | 服务类型 | String | shortSocket |
description | 描述 | string | 步骤描述信息 |
property属性
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
Name | 标识 | string | shortSocket连接启动所需参数 |
value | 值 | string | 当前字段的值; |
socket服务配置property
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
trust_ip | 信任ip | string | 127.0.0.1 |
port | 端口号 | Int | 10005 |
thread_pool_size | 连接池的大小 | Int | 20 |
request_queue_len | 访问的最大队列 | int | 500 |
receive_time | 接收超时 | long | 3000 |
interfaceName | 接口名 | string | 必配 |
transactionName | 交易名 | string | 必配 |
接口主配置
对应服务端配置的接口和交易的编写,用来接收客户端socket传来的请求,并进行请求的响应。
客户端套接字
发送请求前需要建立连接,端口和ip需和服务配置中相同,接收的响应报文直接用this来表示。
<interface id="shortSocketFilter" type="server" version="2.0" defaultScope="transaction">
<transaction id="test" version="2.0" loglevel="trace">
<step id="1">
<filter type="in" ref="publicFilter">
<field value="jsnx|COWPIN|flsend" scope="this"/>
</filter>
<connection ref="shortSocketClientConnection" type="out">
<property name="ip" value="127.0.0.1"/>
<property name="port" value="10005"/>
<property name="has_head" value="true"/>
<property name="head_len_type" value="2"/>
<property name="head_len" value="4"/>
<property name="is_contain_head_len" value="false"/>
<property name="fill_len" value="0"/>
<property name="is_contain_fill_len" value="false"/>
<property name="body_offset" value="0"/>
<property name="encoding" value="UTF-8"/>
</connection>
<filter ref="publicFilter" type="in">
<field tag="res" value="${this}" type="string"/>
<log value="应答-----${this}"/>
</filter>
</step>
</transaction>
服务端socket
使用${bytes2Str(__val,'#{ENCODE}')}来解析接收的请求报文。
<transaction id="shortSocketserver" version="2.0" loglevel="trace">
<step id="1">
<filter ref="publicFilter" type="in">
<field tag="res" value="${bytes2Str(__val,'#{ENCODE}')}"/>
<log value="接收到的报文:${res}"/>
<field value="success!" scope="this"/>
</filter>
</step>
</transaction>
启动流程
先通过service.bat启动服务端,在通过client.bat启动客户端,从而完成连接交互。
输出在两个日志中。
服务端接收
客户端接收