是否可以在单个 JPOS 实例中为多个客户端监听多个端口?

Is it possible to listen with multiple port for multiple client in single JPOS instance?

我是 JPOS 的新手。我们已经为多个客户端实现了 jpos 服务器。

here is a image of my scenario

例如,我们有 n 个客户。每个客户端的 ISO 消息格式都不同。

是否可以在JPOS 服务器中为每个客户端实现多个监听端口?

如果否,那么使用单个 JPOS 服务器实例处理多个客户端的最佳做法是什么?

我们如何在处理ECHO和登录请求时识别每个客户端?

请帮忙。

提前致谢。

当然,为什么不呢,您可以添加任意数量的服务器,使用不同的协议。查看 http://jpos.org/tutorials 并向您的部署目录添加更多服务器。

您可以使用JPOS的group,selector,participant特性来处理echo和request。

选择器和组的示例代码

    <participant class="org.jpos.demo.group.Selector" name="Selector" logger="Q2">
            <property name="1100" value="Request" />
            <property name="1800" value="Echo" />
    </participant>

     <group name="Request">
            <participant class="org.jpos.demo.transaction.Request" logger="Q2" realm="prepare-response">
            </participant>
</group>

     <group name="Echo">
            <participant class="org.jpos.demo.transaction.Echo" logger="Q2" realm="prepare-echo">
            </participant>
         </group>

选择器可以识别传入消息示例的 MTI:1100 用于请求,1800 用于回显。 Selector class 可以实现 GroupSelector 和 Configurable 并覆盖下面的方法来获取 MTI

@Override
        public String select(long l, Serializable serializable) {
            Context ctx = (Context)serializable;
            ISOMsg resIsoMsg = (ISOMsg)ctx.get(REQUEST);
            String selector = "";
            try {
                selector = configuration.get(resIsoMsg.getMTI());
            } catch (ISOException e) {
                e.printStackTrace();
            }
            return selector;
        }

当然可以添加多个q2服务器。

只需在您的 dist 文件夹中添加另一个 xml q2 服务器定义,jPOS 将立即选择新服务器并开始侦听您指定的端口。