.NET 4 の WebForms アプリケーションでダッシュボードの通知を作成しようとしています。SignalR バージョン 1.2 (.net クライアントとサーバーの両方) をダウンロードし、簡単な通知の例を用意しました。残念ながら、それは機能せず、理由がわかりません。http://myserver.com/notificationSample/signalr/hubsと入力すると、javascript プロキシが表示され、問題ないように見えます。
以下の実装を見てください。誰かバグを見つけましたか?
a) ハブの実装
[HubName("NewMessage")]
public class NewMessageNotifier : Hub
{
public void NotifyDashboards()
{
Clients.All.NewMessageCreated();
}
}
b) 通知発信者 (サーバー) ~/Pages/NotificationCaller.aspx
public partial class NotificationCaller : Page
{
private HubConnection connection;
private IHubProxy proxy;
protected void Page_Load(object sender, EventArgs e)
{
connection = new HubConnection( "http://myserver.com/notificationSample" );
proxy = connection.CreateHubProxy( "NewMessage" );
connection.Start().Wait();
}
// it is handler for onclick event on Button control
protected void NotifyDashboard(object sender, EventArgs e)
{
proxy.Invoke( "NotifyDashboards" ).Wait();
}
}
c) ダッシュボード (クライアント、リスナー) ~/Pages/Dashboard.aspx
public partial class Dashboard: BasePage
{
private HubConnection connection;
protected void Page_Load(object sender, EventArgs e)
{
connection = new HubConnection( "http://myserver.com/notificationSample" );
var proxy = connection.CreateHubProxy("NewMessage");
proxy.On("NewMessageCreated", ShowNotification);
connection.Start();
}
private void ShowNotification()
{
ShowAlert("New message added!");
}
}