void client_MessageReceived(object sender, MessageEventArgs e) { var message = new ServiceMessageEventArgs { Client = client, Request = request }; //不是指定消息不处理 if (e.Message is ScsCallbackMessage) { //消息类型转换 var data = e.Message as ScsCallbackMessage; message.Result = data.MessageValue; } else if (e.Message is ScsResultMessage) { //消息类型转换 var data = e.Message as ScsResultMessage; message.Result = data.MessageValue; } //把数据发送到客户端 if (OnCallback != null) OnCallback(this, message); }
void client_MessageSent(object sender, MessageEventArgs e) { //暂不作处理 }
/// <summary> /// Handles MessageSent event of _communicationChannel object. /// </summary> /// <param name="sender">Source of event</param> /// <param name="e">Event arguments</param> private void CommunicationChannel_MessageSent(object sender, MessageEventArgs e) { OnMessageSent(e.Message); }
/// <summary> /// Handles MessageReceived event of _communicationChannel object. /// </summary> /// <param name="sender">Source of event</param> /// <param name="e">Event arguments</param> private void CommunicationChannel_MessageReceived(object sender, MessageEventArgs e) { var message = e.Message; if (message is ScsPingMessage) { _communicationChannel.SendMessage(new ScsPingMessage { RepliedMessageId = message.MessageId }); return; } OnMessageReceived(message); }
void Client_MessageReceived(object sender, MessageEventArgs e) { //不是指定消息不处理 if (e.Message is ScsClientMessage) { var info = sender as IScsServerClient; if (server.Clients.ContainsKey(info.ClientId)) { var client = server.Clients[info.ClientId]; var appClient = (e.Message as ScsClientMessage).Client; client.State = appClient; //响应客户端详细信息 var endPoint = (info.RemoteEndPoint as ScsTcpEndPoint); container.Write(string.Format("Change app 【{4}】 client {0}:{1} to {2}[{3}]!", endPoint.IpAddress, endPoint.TcpPort, appClient.IPAddress, appClient.HostName, appClient.AppName), LogType.Information); MessageCenter.Instance.Notify(endPoint.IpAddress, endPoint.TcpPort, appClient); } } else if (e.Message is ScsResultMessage) { //获取client发送端 var client = sender as IScsServerClient; //解析消息 var message = e.Message as ScsResultMessage; var reqMsg = message.MessageValue as RequestMessage; //调用方法 var resMsg = caller.CallMethod(client, reqMsg); //发送数据到服务端 SendMessage(client, resMsg, message.RepliedMessageId); } }
/// <summary> /// Handles MessageReceived event of _communicationChannel object. /// </summary> /// <param name="sender">Source of event</param> /// <param name="e">Event arguments</param> private void CommunicationChannel_MessageReceived(object sender, MessageEventArgs e) { if (e.Message is ScsPingMessage) { return; } OnMessageReceived(e.Message); }