所以我正在尝试 SignalR,对于我正在做的这个项目。而且我不太了解 HubConnectionBuilder 中的 .WithUrl 参数。如果我想在本地主机上托管,我怎么知道要指定哪个 URL?
我的集线器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;
namespace SignalRChat.MyHub
{
public class MyHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("SendMessage", user, message);
}
}
}
我的程序.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNetCore.Cors.Infrastructure;
using Microsoft.AspNetCore.SignalR.Client;
using Owin;
using SignalRChat.MyHub;
using Microsoft.Owin.Hosting;
using Microsoft.Owin.Cors;
namespace SignalRChat
{
public partial class Form1 : Form
{
HubConnection connection;
public Form1()
{
InitializeComponent();
connection = new HubConnectionBuilder()
.WithUrl("http://localhost:8080/MyHub")
.Build();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private async void button1_Click(object sender, EventArgs e)
{
try
{
await connection.StartAsync();
//await connection.InvokeAsync("SendMessage", textBox1.Text, textBox2.Text);
//listBox1.Items.Add($"{textBox1.Text}: {textBox2.Text}");
}
catch (Exception ex)
{
listBox1.Items.Add(ex.Message);
}
}
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
我收到以下错误:
我尝试在互联网上搜索有关如何使用 .WithUrl 的信息,但没有成功。我希望你们中的一些人可以帮助兄弟!
答案 0 :(得分:0)
您能否尝试在异常处理程序中显示 innerException 并查看详细错误是什么?
另外,检查您的 SignalR 事件中心 (http://localhost:8080/MyHub) 是否正在运行。
如果您的 SignalR 事件中心正在运行,请尝试调试它并查看它是否在您的服务中心后台任务中接收请求。
您可以检查的另一件事是您正在调用的 URL 与您的 SignalR 集线器集线器服务中配置的 SignalR 集线器路由相同:
routes.MapHub<MyHubClass>("/MyHub");