2

我正在努力理解方式clientserver交流vaadin 7。在通信方面我已经很好地理解了它server->client,但是我仍然无法理解它是如何工作的,即从客户端到服务器。我读过客户端不应该改变State,但他们应该通过发送相关数据rpc。在客户端有一个MyComponentClientRpc包含一些方法的接口,开发人员应该在Connector班级。然后可以将接口实例化为服务器上的匿名类并可以调用该方法。但是,如果客户端上有一个字符串“myString”,如何将其传输到服务器,因为只能在服务器上调用该方法并在调用时传递参数?那么如何才能获得躺在客户端上的数据呢?

public interface MyComponentClientRpc extends ClientRpc {

    public void getString(String s);

}  




public class MyComponentConnector extends AbstractComponentConnector {


    @SuppressWarnings("serial")
    MyComponentClientRpc mcRpc = new MyComponentClientRpc() {
        public void getString(String s) {
            // TODO Do something useful
                ????
        }
    };

public MyComponentConnector() {
        registerRpc(MyComponentClientRpc.class, mcRpc);

String a = "myString";

....

}

特别是在客户端如何实现该方法,如何在其中插入数据以及在服务器上应该如何调用它?

4

1 回答 1

1

但是,如果客户端上有一个字符串“myString”,如何将其传输到服务器,因为只能在服务器上调用该方法并在调用时传递参数?那么如何才能获得躺在客户端上的数据呢?

您使用了错误的机制。实际上有两个 RPC,ClientRpc并且ServerRpc. 在您的示例中,您使用ClientRpc,它用于从服务器到客户端的调用。

要从客户端与服务器进行通信,您必须从ServerRpc.

在客户端,您调用

 MyComponentClientRpc rpc = RpcProxy.create(MyComponentClientRpc.class, this)

为了获得代理。

于 2013-09-06T13:21:17.770 回答