我尝试将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之后不久。 状态从连接变为断开连接。
我在这里错过了什么?
答案 0 :(得分:1)
看起来问题出在我的IIS上的applicationhost.config文件中。
我不得不改变
binding protocol="http" bindingInformation="*:45223:localhost"
为:
binding protocol="http" bindingInformation="*:45223:*"