无法在Android上获得SignalA以连接到SignalR后端

时间:2014-09-20 16:01:22

标签: c# android signalr

我尝试将SignalA(https://github.com/erizet/SignalA)用于小型Android应用程序。

我的SignalR实例已启动,如下所示:

namespace SignalRPersistent
{
    public class ChatConnection : PersistentConnection
    {
        protected override Task OnConnected(IRequest request, string connectionId)
        {
            return Connection.Send(connectionId, "Welcome!");
        }

        protected override Task OnReceived(IRequest request, string connectionId, string data)
        {
            return Connection.Broadcast(data);
        }
    }
}

我的Startup.cs看起来像这样:

namespace SignalRPersistent
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR<ChatConnection>("/echo");
        }
    }
}
在Android方面,我的相关代码是:

String url = "http://10.0.2.2:45223/echo/";
com.zsoft.signala.Connection con = new com.zsoft.signala.Connection(url, this, new LongPollingTransport()) {

    @Override
    public void OnError(Exception exception) {
        Toast.makeText(MyActivity.this, "On error: " + exception.getMessage(), Toast.LENGTH_LONG).show();
    }

    @Override
    public void OnMessage(String message) {
        Toast.makeText(MyActivity.this, "Message: " + message, Toast.LENGTH_LONG).show();
    }

    @Override
    public void OnStateChanged(StateBase oldState, StateBase newState) {

        Toast.makeText(MyActivity.this, "oldState: " + oldState.getState() + " newState: " + newState.getState(), Toast.LENGTH_LONG).show();
    }
};

似乎看到找到它就好了,但在Disconnects之后不久。  状态从连接变为断开连接。

我在这里错过了什么?

1 个答案:

答案 0 :(得分:1)

看起来问题出在我的IIS上的applicationhost.config文件中。

我不得不改变

binding protocol="http" bindingInformation="*:45223:localhost" 

为:

binding protocol="http" bindingInformation="*:45223:*"