我正在尝试将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();
}
};
似乎可以找到它的位置很好,但是在断开连接后不久。状态从“正在连接”更改为“已断开连接”。
我在这里想念什么?
看起来问题出在我IIS上的applicationhost.config文件中。
我不得不改变
binding protocol="http" bindingInformation="*:45223:localhost"
到:
binding protocol="http" bindingInformation="*:45223:*"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句