SignalR java客户端无法调用方法并发送数据

问题描述 投票:0回答:1

我使用以下代码创建了一个基本的自主SignalR服务器:

    class Program
    {
        static void Main(string[] args)
        {
            // This will *ONLY* bind to localhost, if you want to bind to all addresses
            // use http://*:8080 to bind to all addresses. 
            // See http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx 
            // for more information.
            string url = "http://localhost:8080";
            using (WebApp.Start(url))
            {
                Console.WriteLine("Server running on {0}", url);
                Console.ReadLine();
            }
        }
    }
    class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.UseCors(CorsOptions.AllowAll);
            app.MapSignalR();
        }
    }
    public class MyHub : Hub
    {
        public void Send(string name, string message)
        {
            Clients.All.addMessage(name, message);
        }
    }

这取自:https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host并与Javascript客户端合作。

我现在正在尝试创建一个Java客户端,并获得以下代码,它应该只是向服务器发送消息:

       String host = "http://localhost:8080";

        HubConnection connection = new HubConnection(host);

        HubProxy proxy = connection.createHubProxy("MyHub");

        connection.start();

        try {
            System.out.println("Sendng message...");
            proxy.invoke( "Send", "Client", "Hello world!" ).get();
            System.out.println("Message sent!");
        } catch (InterruptedException e) {
            System.out.println("err1");
            // Handle ...
        } catch (ExecutionException e) {
            System.out.println("err2");
            // Handle ...
        }

我遇到的问题是服务器没有收到消息,似乎代码停留在调用调用并且不打印Hello world!消息。有人知道我做错了什么吗?

java c# asp.net signalr signalr-hub
1个回答
0
投票
hubProxy.invoke("sendMessageByUser", Message, WebApiToken).done(new Action<Void>() {
        @Override
        public void run(Void aVoid) {


            if (aVoid != null)

                handler.post(new Runnable() {
                    @Override
                    public void run() {

                        Toast.makeText(MyApplicationService.this, "Mesaj gönderildi", Toast.LENGTH_SHORT).show();


                    }
                });


        }
    }).onError(new ErrorCallback() {
        @Override
        public void onError(final Throwable error) {


            handler.post(new Runnable() {
                @Override
                public void run() {

                    Toast.makeText(MyApplicationService.this.getApplicationContext(), "Bir hata oluştu" + error.toString(), Toast.LENGTH_SHORT).show();

                }
            });


        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.