【发布时间】:2018-08-09 20:05:28
【问题描述】:
我对 SignalR 比较陌生,但是,我已经阅读了大量文档,但无法使其正常工作。
我有一个在 SignalR 中工作的完全可用的集线器,它被实现为控制台应用程序。我还有一个客户端作为另一个控制台应用程序工作。但是,我还希望能够从 asp.net 应用程序向服务器发送消息。
我这样发送消息:
_hub.Invoke("SendMessage", "ExampleMessage").Wait();
我希望它能够在以下位置工作:
<asp:button onclick="Signalr_FireEvent"> (Not Real Code)
它会发送一条类似于顶部的消息。
客户申请信息:
IHubProxy _hub;
string url = @"http://localhost:8080/";
var connection = new HubConnection(url);
_hub = connection.CreateHubProxy("Hub");
connection.Start().Wait();
_hub.On("ReceiveMessage", x => Console.WriteLine(x)); //On Receive Message Write To Console
_hub.Invoke("SendMessage", "$").Wait(); //Send LoggedIn Message once connected to server
string line = null;
while ((line = System.Console.ReadLine()) != null)
{
_hub.Invoke("SendMessage", line).Wait();
}
Console.Read();
【问题讨论】:
-
它的概念完全一样(虽然 TBH 可能让客户端浏览器连接比服务器更有意义...)您尝试了什么,什么没有奏效?
-
我尝试使用 asp:button 的 onclick 代码进行此操作,但是我从未在集线器上收到任何连接或网络浏览器上的错误消息,所以我认为我做错了由于他们没有这方面的文件,我决定在这里问
-
您仍然需要更具体。您尝试了哪些代码不起作用?您是否设置了一些断点并逐步执行?检查输出日志中的异常?如果没有更多信息,我们将无能为力。
-
好的,对不起,我会在早上在电话 ATM 上发布一些代码。非常感谢您迄今为止的帮助
-
我的建议是你有一个中心作为中心,然后控制台应用程序和页面(通常是 JavaScript)都作为客户端工作。您可以通过集线器轻松地在客户端之间转发消息。