java 通知 客户端_java – 更新时从服务器到客户端的RMI通知

本文介绍了一个模拟运送应用的场景,其中服务器每分钟更新产品状态,并需要在状态变化时通知客户端。文章探讨了如何使用Java RMI实现从服务器到客户端的通信,包括接口定义、客户端和服务器端的实现,以及一个简单的使用示例。同时提到,对于更复杂的客户端通知场景,Java消息服务(JMS)可能是一个更好的选择。
摘要由CSDN通过智能技术生成

我正在写一个假的运送应用程序.客户端发送产品,服务器保留所有发送的产品.

现在服务器 – 因为它只是虚拟的 – 每分钟更新产品的状态(SEND – > ACCEPTED – > SHIPPED – > RECEIVED),现在我希望服务器在更新状态时更新相应的客户端.

我所讨论的大多数RMI信息只涉及客户 – >服务器..但我需要我的服务器为我的客户端调用这个..

希望你们能帮忙!

解决方法:

服务器到客户端的通信在所有远程技术(包括RMI)中都是一个雷区.这可能是您在努力寻找有关该主题的大量文档的原因.对于受控环境中的虚拟程序,以下方法将起作用并且是最简单的方法.请注意,已省略所有错误处理.

import java.rmi.Remote;

import java.rmi.RemoteException;

import java.rmi.server.UnicastRemoteObject;

interface ClientRemote extends Remote {

public void doSomething() throws RemoteException;

}

interface ServerRemote extends Remote {

public void registerClient(ClientRemote client) throws RemoteException;

}

class Client implements ClientRemote {

public Client() throws RemoteException {

UnicastRemoteObject.exportObject(this, 0);

}

@Override

public void doSomething() throws RemoteException {

System.out.println("Server invoked doSomething()");

}

}

class Server implements ServerRemote {

private volatile ClientRemote client;

public Server() throws RemoteException {

UnicastRemoteObject.exportObject(this, 0);

}

@Override

public void registerClient(ClientRemote client) throws RemoteException {

this.client = client;

}

public void doSomethingOnClient() throws RemoteException {

client.doSomething();

}

}

用法:在服务器上创建一个Server对象,将其添加到RMI注册表并在客户端上查找.

还有其他技术使客户端通知更容易,Java消息服务(JMS)通常用于此.

标签:java,client-server,distributed,rmi

来源: https://codeday.me/bug/20190826/1730399.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值