public partial class MainPage : UserControl
{
Timer timer;
ChatService.ChatServiceClient proxy;
BasicHttpBinding binding;
EndpointAddress endPoint;
public MainPage()
{
InitializeComponent();
binding = new BasicHttpBinding();
endPoint = new EndpointAddress("http://localhost:1939/ChatService.svc%22);
timer = new Timer(new TimerCallback(GetMessages),this,100,100);
}
#region 定时检测信息
public void GetMessages(object obj)
{
proxy = new ChatService.ChatServiceClient(binding, endPoint);
proxy.GetMessagesCompleted += new EventHandler<ChatService.GetMessagesCompletedEventArgs>(GetMessagesComleted);
proxy.GetMessagesAsync("wengyuli");
}
void GetMessagesComleted(object sender, ChatService.GetMessagesCompletedEventArgs e)
{
if(e.Error==null)
{
if (this.listMsgs.Dispatcher.CheckAccess())
{
this.listMsgs.ItemsSource= e.Result;
}
else
{
this.listMsgs.Dispatcher.BeginInvoke(() => { this.listMsgs.ItemsSource = e.Result; });
}
}
}
#endregion
#region 发送信息
private void btnSend_Click(object sender, RoutedEventArgs e)
{
ChatService.MessageInfo message = new ChatService.MessageInfo();
message.ID = Guid.NewGuid().ToString();
message.Receipt = 0;
message.ReceiveMode = "user";
message.ReceiveOrgan = "";
message.ReceiveUser = "xiejianjun";
message.Message = this.txtMessage.Text;
message.Sender = "wengyuli";
message.SendTime = DateTime.Now;
message.Source = "web";
message.State = 0;
message.Title = this.txtMessage.Text;
proxy = new ChatService.ChatServiceClient(binding, endPoint);
proxy.SendMessageCompleted += new EventHandler<ChatService.SendMessageCompletedEventArgs>(SendMessageComleted);
proxy.SendMessageAsync(message);
}
void SendMessageComleted(object sender,ChatService.SendMessageCompletedEventArgs e)
{
if (e.Error == null)
{
//MessageBox.Show("服务器返回结果:" + e.Result);
}
}
#endregion
}