2014-12-29 2 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))); 
관련 문제