【发布时间】:2015-10-21 21:53:12
【问题描述】:
您好,我创建了 2 个 winform 应用程序,一个用作服务器(自托管),一个用作客户端。我的服务器应用程序有一个停止和启动服务器/集线器的按钮和一个显示日志信息的文本框。
我可以在 2 个应用程序之间成功发送消息,也就是说客户端从服务器接收消息,反之亦然,这很好用,但我唯一的问题是在发送消息时允许集线器的首选方式是什么或收到,在文本框中显示,用于调试/信息目的。
如何将集线器的方法生成的文本推送到 GUI 的文本框控件中?
我的代码如下所示:
Winform GUI 代码
public partial class Form2 : Form
{
private IDisposable _SignalR;
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this._SignalR = WebApp.Start<Startup>("http://localhost:8080");
}
}
Startup 是我用于初始化 Hub 的类的名称
public class Startup
{
public void Configuration(IAppBuilder app)
{
try
{
app.Map("/signalr", map =>
{
map.UseCors(CorsOptions.AllowAll);
HubConfiguration hubConfiguration = new HubConfiguration
{
EnableDetailedErrors = true,
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
}
catch(Exception)
{
throw;
}
}
}
我的 Hub 类 (TestHub) 看起来像这样,我已经指出了我想将字符串传递到 GUI 的位置:
public class TestHub : Hub
{
public override Task OnConnected()
{
string message = string.Format("Client connected: {0}", Context.ConnectionId);
// Want to send details of connected user to GUI
return base.OnConnected();
}
public override Task OnDisconnected(bool graceFull)
{
string message = string.Format("Client disconnected: {0}", Context.ConnectionId);
// Want to send details of disconnected user to GUI
return base.OnDisconnected(graceFull);
}
public void SendAll(string message)
{
// Want to send details of actionto GUI
Clients.All.addMessage(message);
}
}
【问题讨论】:
-
很好,你的问题是什么?
-
您好,我刚刚将查询标记为粗体,但总而言之:如何将集线器方法生成的文本推送到 GUI 的文本框控件?
标签: c# signalr signalr-hub signalr.client