2014-12-29 7 views
0

Я использую SignalR в сервисе WCF ria (клиент Silverlight). Ниже мои конфигурации для установления соединения с моей Hub: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!"); 
} 

Hub:

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

соединение запускается успешно, но каждый раз, когда я нажимаю на кнопку, он стреляет несколько раз. например, первый раз он срабатывает один раз, второй раз он срабатывает дважды и ...
Любая идея?

ответ

1

Ваше сообщение отправлено раз, но вы регистрируете обработчик событий при каждом нажатии. Переместите это из события клика btn.

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