HubConnection.Start()上的信号器Xamarin客户端未处理错误

时间:2017-06-18 16:27:18

标签: c# asp.net xamarin signalr

我跟着一个信号器样本,并在服务器上运行了一个运行signlar的网页。我现在正在尝试将Android(Xamarin)客户端连接到同一服务器,但在调用connection.Start()时会收到Unhandled Exception。

这是我知道的信号器中心,因为网页成功调用它。

using Microsoft.AspNet.SignalR;
namespace WebApplication.Hubs
{
    public class MyHub : Hub
    {
        public void SendNow(string name, string message)
        {
            Clients.All.displayMessage(name, message);
        }
    }
}

我的Android类试图连接到此Hub但失败了。

using System.Threading;
using System.Threading.Tasks;
using Android.Widget;
using Microsoft.AspNet.SignalR.Client;

class SignalClient
{
    private HubConnection _connection;
    private IHubProxy _proxy;
    private TextView BoxView;
    private string _user;

    public SignalClient(string user, TextView outputBox)
    {
        BoxView = outputBox;
        _user = user;
    }

    public async Task Connect()
    {
        _connection = new HubConnection("http://websiteurl/chatapp/");
        _proxy = _connection.CreateHubProxy("MyHub");


        _proxy.On("displayMessage", (string user, string message) =>
        {
            SynchronizationContext.Current.Post(delegate
            {
                BoxView.Text += ("{0}: {1}\n", user, message);
            }, null);
        });

        await _connection.Start(); //<- Unhandled Exception
        await Send("Connected");
    }

    public Task Send(string message)
    {
        return _proxy.Invoke("SendNow", _user, message);
    }
}

我已经尝试了我能想到的所有网址变体。从基础网站网址中添加我发布的子域名,以及最后使用signalr /的两种变体。

被困在这里几天......非常感谢任何帮助或指导。

感谢。

编辑1:这是调用堆栈

    0xFFFFFFFFFFFFFFFF in System.Diagnostics.Debugger.Mono_UnhandledException_internal  C#
0x1 in System.Diagnostics.Debugger.Mono_UnhandledException  C#
0x20 in object.7424197e-7e83-40fd-ba05-2908dff2d689 C#
0x12 in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw    C#
0x6 in System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0    C#
0xC in Android.App.SyncContext. C#
0xE in Java.Lang.Thread.RunnableImplementor.Run C#
0x8 in Java.Lang.IRunnableInvoker.n_Run C#
0x11 in object.7424197e-7e83-40fd-ba05-2908dff2d689 C#

1 个答案:

答案 0 :(得分:0)

确保您传递给HubConnection的网址是该中心的网址。

您正在通过"http://websiteurl/chatapp/" - 您确定这是集线器的网址而不是网站的网址吗?