【发布时间】:2018-01-10 09:26:42
【问题描述】:
我使用以下代码创建了一个基本的自托管 SignalR 服务器:
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 MyHub : Hub
{
public void Send(string name, string message)
{
Clients.All.addMessage(name, message);
}
}
取自:https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host 并与 Javascript 客户端一起使用。
我现在正在尝试创建一个 Java 客户端并得到以下代码,它只是应该向服务器发送消息:
String host = "http://localhost:8080";
HubConnection connection = new HubConnection(host);
HubProxy proxy = connection.createHubProxy("MyHub");
connection.start();
try {
System.out.println("Sendng message...");
proxy.invoke( "Send", "Client", "Hello world!" ).get();
System.out.println("Message sent!");
} catch (InterruptedException e) {
System.out.println("err1");
// Handle ...
} catch (ExecutionException e) {
System.out.println("err2");
// Handle ...
}
我遇到的问题是服务器没有收到消息,似乎代码卡在调用调用中并且没有打印Hello world! 消息。有人知道我做错了什么吗?
【问题讨论】:
-
SignalR 已经有一个 Java 客户端 - github.com/SignalR/java-client 。你可以用它来代替吗?
-
@ADyson 嗯,你指的是哪一个,因为我只能看到测试文件?
-
@ADyson 我已经在项目中导入了java文件,是否需要创建一个jar文件?如果我问一些简单的问题,我对 java 和全新的信号器不太擅长。
-
我不知道,抱歉,我已经有 15 年没有成为 Java 开发人员了...由于 asp.net 标签,我的提要中出现了这个问题。我只是做了一个快速的谷歌,并认为你可以进一步调查。我以为他们指的是存储库中已经存在的文件,但是是的,也许您必须构建它。
标签: java c# asp.net signalr signalr-hub