2014-12-29 28 views
0

我在WCF ria服務(Silverlight客戶端)中使用SignalR。下面是我的配置爲建立連接到我的樞紐:Silverlight:發生多次點擊事件

private void btn_click(object sender, RoutedEventArgs e) 
{ 
      var hubConnection = new HubConnection(url: "http://10.1.0.5:2096/signalr/"); 
      var chat = hubConnection.CreateHubProxy(hubName: "chat"); 
      chat.On<string>("hello", msg => System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show(msg))); 
      hubConnection.Start().Wait(); 
      chat.Invoke<string>("sendMessage", "Hello!"); 
} 

樞紐:

[HubName("chat")] 
public class ChatHub : Hub 
{ 
     public void SendMessage(string message) 
     { 
      Clients.All.hello(message); 
     } 
} 

連接成功啓動,但每次我按一下按鈕,它激發了好幾次。例如第一次啓動一次,第二次啓動兩次,然後......
任何想法?

回答

1

您的郵件只發送一次,但是您在每次點擊時註冊事件處理程序。將其移出btn click事件。

var chat = hubConnection.CreateHubProxy(hubName: "chat"); 
chat.On<string>("hello", msg => System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show(msg)));