- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我按照 THIS tutorial 为我的 Android 应用程序设置了一个 .NET 后端来实现 Signal R。我设置了一个 SignalR 自托管后端。
这是我在控制台项目中的后端代码:
namespace SignalRSelfHost
{
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 MessageHub : Hub
{
public static event Action<string, string> MessageReceived = delegate { };
public void SendMessage(string name, string message)
{
MessageReceived(name, message);
}
}
public class CustomType
{
public string Name;
public int Id;
}
}
我的安卓代码:
Handler handler;
TextView statusField;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
handler = new Handler();
statusField = (TextView) findViewById(R.id.statusField);
Platform.loadPlatformComponent(new AndroidPlatformComponent());
// Change to the IP address and matching port of your SignalR server.
String host = "http://192.168.1.5:8080/";
HubConnection connection = new HubConnection( host );
HubProxy hub = connection.createHubProxy( "MessageHub" );
ClientTransport transport = new ServerSentEventsTransport(connection.getLogger());
SignalRFuture<Void> awaitConnection = connection.start(transport);
try {
awaitConnection.get();
}
catch (InterruptedException e) {
Log.d("CHECK", e.toString());
e.printStackTrace();
} catch (ExecutionException e) {
Log.d("CHECK", e.toString());
e.printStackTrace();
}
hub.subscribe(this);
try {
hub.invoke( "SendMessage", "Client", "Hello world!" ).get();
hub.invoke( "SendCustomType",
new CustomType() {{ Name = "Universe"; Id = 42; }} ).get();
} catch (InterruptedException e) {
// Handle ...
} catch (ExecutionException e) {
// Handle ...
}
}
public void UpdateStatus(String status) {
final String fStatus = status;
handler.post(new Runnable() {
@Override
public void run() {
statusField.setText(fStatus);
}
});
}
public class CustomType
{
public String Name;
public int Id;
}
但是,我最终遇到了一个挂起的屏幕,它什么都不显示,而且应用程序停止响应。 android 记录器显示以下错误:
java.util.concurrent.ExecutionException: java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80) after 15000ms: isConnected failed: ECONNREFUSED (Connection refused)
我的代码是否正确,我是否正确遵循了指南?这是一个非常直接的指南,但出现了这个问题。有人可以帮忙吗?
编辑:
This 是一个非常相似的问题,实际上它描述的是同一个问题。然而,这对我没有任何好处。如果您注意到我的 android 代码,我已经在那个问题中提出了这些更改。仍然没有解决问题。
堆栈跟踪
java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: failed to connect to / 192.168.1.5(port 8080) after 15000ms
at microsoft.aspnet.signalr.client.SignalRFuture.get(SignalRFuture.java: 112)
at microsoft.aspnet.signalr.client.SignalRFuture.get(SignalRFuture.java: 102)
at com.example.dinuka.signalrtest.Main2Activity.onCreate(Main2Activity.java: 40)
at android.app.Activity.performCreate(Activity.java: 6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2655)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2767)
at android.app.ActivityThread.access$900(ActivityThread.java: 177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1449)
at android.os.Handler.dispatchMessage(Handler.java: 102)
at android.os.Looper.loop(Looper.java: 145)
at android.app.ActivityThread.main(ActivityThread.java: 5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java: 372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 1195)
Caused by: java.net.SocketTimeoutException: failed to connect to / 192.168.1.5(port 8080) after 15000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java: 169)
at libcore.io.IoBridge.connect(IoBridge.java: 122)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java: 183)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java: 456)
at java.net.Socket.connect(Socket.java: 882)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java: 139)
at com.android.okhttp.Connection.connect(Connection.java: 1194)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java: 392)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java: 295)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java: 373)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java: 323)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java: 491)
at microsoft.aspnet.signalr.client.http.java.NetworkRunnable.run(NetworkRunnable.java: 72)
at java.lang.Thread.run(Thread.java: 818)
最佳答案
几天前我遇到了类似的问题,这个 Github 问题对我有所帮助: https://github.com/SignalR/java-client/issues/63
基本上我所做的就是修改 signalr-client-sdk 项目中的 WebsocketTransport.java。替换:
uri = new URI(url);
与
uri = new URI(url.replace("http://", "ws://"));
源代码中的第 86 行左右。
我现在可以连接并发送消息并接收原始数据,但无法订阅事件...
希望这可以帮助您解决问题。
关于android - 在 Android : Crash/Hung Issue 中设置 Signal R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264835/
我已经阅读了关于这个问题的各种帖子,我可以验证在执行远程 ssh 命令时使用 -t 确实会强制分配 tty 并允许完成命令。但是,我遇到的问题是,在此之前十二小时,我无法自由访问该服务器。现在,由于没
我在我的本地仓库中创建了一个新分支,在一些提交之后,我想将它推送到远程仓库。 git push origin new_branch 我有这个错误: $ git push origin new_bran
我在开发应用程序中面临 Java 线程挂起的问题。以下是日志跟踪: 020 SystemOut O ----------------------------------------------
我正在测试套接字超时条件的处理 - 例如,连接超时、连接但不接受、接受但不会读取等。 我正在寻找一个程序/脚本来充当产生这些效果的服务器套接字。 这个“hung socket simulator”需要
出现错误时 致命:远端意外挂断 我可以运行哪些测试来弄清楚发生了什么?我已经创建了一个全新的 git 存储库,但它不会推送! 以下是其他 StackOverflow 问题建议的一些标准诊断: $ ss
我看过其他有类似问题的线程,但我是 git 的新手,所以大部分都没有意义:( 问题是: 我无法将简单的自述文件推送到我在 github 上的存储库。 $ ssh -T git@github.com 似
我正在尝试使用 phing 和 GitCloneTask(从 github 克隆一个 repo)编写构建文件,但每次运行 phing 时我都会收到此消息: The remote end hung
我将存储库的所有权转让给了我拥有所有权的组织。但是,现在我无法推送到存储库。我收到此错误: $ git push origin master ERROR: Repository not found.
我现在无法将我的本地提交推送到 github 存储库。我收到一条错误消息: Counting objects: 76, done. Delta compression using up to 8 th
当我试图运行时 git push origin master --force 刚好 Counting objects: 2649, done. Delta compression uses up to
$ git push -u origin master Counting objects: 321523, done. Delta compression using up to 8 thread
这里有一个奇怪的问题。当我们的所有 48 台服务器都尝试从 Git 中 pull 数据时,我们不断收到远程主机关闭的连接。当直接运行 .sh 文件时(它有 git pull 代码),没有问题,除非它与
我正尝试在 openshift 中启动一个游戏项目。第一阶段占项目近15%,已顺利完成并上传。所以,我想初始配置没问题。现在,在我几乎完成项目的其余部分后,当我尝试使用 ssh 推送项目时,每次在一定
我很长一段时间没有使用 boost::spirit,然后又回来了。并停留在简单的情况下(天哪,有时我想杀死这个库……为什么这么简单的任务在 boost 下如此复杂)。 #include #inclu
我正在通过 ssh 从 Ubuntu 笔记本电脑连接到虚拟机。 在此 VM 中,我尝试使用 git clone 存储库: /home/httpd$ sudo git clone git@github.
在使用 irb 或 rails console 时,我有时会卡住。例如,我忘记了结束语,所以当我按下回车键时,它仍在等待。 有时我可以摆脱这种情况(例如,通过提供结束语),但有时我做不到。如果没有,我
设置新的 git 安装。 在一台 Windows 笔记本电脑上,我正在运行(在 cygwin 下): git daemon --base-path=/cygdrive/c/work/proj/ 我项
所以我以为我终于在 Windows 上完成了所有设置...然后遇到了这个问题。 当前设置 URL: ssh://user@host:port/myapp.git 已经运行 Putty - 并且可以直接
我在本地创建了一个 git repo。当我尝试推送到 github 时,我得到: Warning: Permanently added the RSA host key for IP address
我已经按照“Generating SSH Keys”操作方法中的描述设置了本地系统以使用 GitHub。 key 文件和known_hosts已创建,公钥已添加到GitHub帐户,我收到消息“Hi *
我是一名优秀的程序员,十分优秀!