static void Main(string[] args) { Dictionary <string, List <string> > offerStorage = new Dictionary <string, List <string> >(); Console.WriteLine("TypeClientAggregator"); using (var server = new ResponseSocket()) using (var emailer = new RequestSocket()) { server.Bind("tcp://*:5557"); emailer.Connect("tcp://127.0.0.1:5558"); while (true) { var message = server.ReceiveMultipartMessage(3); Console.WriteLine("responseSocket : Server Received '{0}'-{1}", message[0].ConvertToString(Encoding.UTF8), message[1].ConvertToString(Encoding.UTF8)); string hashKey = GetHashString(message[0].ConvertToString(Encoding.UTF8) + message[1].ConvertToString(Encoding.UTF8)); if (offerStorage.ContainsKey(hashKey)) { offerStorage[hashKey].Add(message[2].ConvertToString(Encoding.UTF8)); if (offerStorage[hashKey].Count >= 3) { mailOffer(emailer, message[0].ConvertToString(Encoding.UTF8), message[1].ConvertToString(Encoding.UTF8), offerStorage[hashKey]); offerStorage.Remove(hashKey); } } else { offerStorage.Add(hashKey, new List <string>()); offerStorage[hashKey].Add(message[2].ConvertToString(Encoding.UTF8)); } server.SendFrameEmpty(); } } }
static void Main(string[] args) { Console.WriteLine("Emailer!"); using (var server = new ResponseSocket()) { server.Bind("tcp://*:5558"); while (true) { var message = server.ReceiveMultipartMessage(5); Console.WriteLine("responseSocket : Server Received '{0}'-{1}", message[0].ConvertToString(Encoding.UTF8), message[1].ConvertToString(Encoding.UTF8)); EmailOffer(message); server.SendFrameEmpty(); } } }
public static void Main(string[] args) { Console.WriteLine("Starting the application"); using (var responseSocket = new ResponseSocket("@tcp://*:42424")) { while (true) { var frame = responseSocket.ReceiveFrameString(); var message = JsonConvert.DeserializeObject(frame, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); responseSocket.SendFrameEmpty(); Console.WriteLine(frame); } } }
static void Main(string[] args) { Console.WriteLine("Type content router"); using (var server = new ResponseSocket()) using (var publish = new PublisherSocket()) { server.Bind("tcp://*:5555"); publish.Bind("tcp://*:5556"); while (true) { var message = server.ReceiveMultipartMessage(2); Console.WriteLine("responseSocket : Server Received '{0}'-{1}", message[0].ConvertToString(Encoding.UTF8), message[1].ConvertToString(Encoding.UTF8)); server.SendFrameEmpty(); publish.SendMultipartMessage(message); } } }
/// <summary> /// ResponseSocketProc /// </summary> /// <param name="aArg"></param> /// <returns>Returns void.</returns> private static void ResponseSocketProc(object aArg) { string message; while (m_EnableResponseProc) { try { message = m_ResponseSocket.ReceiveFrameString(); if (message == null || string.IsNullOrEmpty(message)) { m_ResponseSocket.SendFrameEmpty(); continue; } dynamic json = JsonConvert.DeserializeObject <dynamic>(message); string apiName = Convert.ToString(json["APIName"]); string apiKey = Convert.ToString(json["APIKey"]); bool asyncTask = Convert.ToBoolean(json["Async"]); m_RepAPIResponse.TryGetValue(apiName, out ServicesRepAttribute serviceAttribute); m_RepAPITypeResponse.TryGetValue(apiName, out Type serviceType); if (serviceAttribute == null || serviceType == null) { m_ResponseSocket.SendFrameEmpty(); continue; } if (!m_ResponsetApiKey.Contains(Encryption.Decrypt(apiKey))) { m_ResponseSocket.SendFrameEmpty(); continue; } IServices serviceInstance = Activator.CreateInstance(serviceType) as IServices; string responseMessage = ""; if (asyncTask) { responseMessage = serviceInstance.OnRequestAsync(json); } else { responseMessage = serviceInstance.OnRequest(json); } m_ResponseSocket.SendFrame(responseMessage); if (serviceAttribute.ZmqNotifySubscriber) { serviceInstance.OnNotifySubscriber(json, responseMessage); } } catch (Exception e) { ZNLogger.Common.Error(string.Format(CultureInfo.InvariantCulture, "ZmqImpl Error:{0}\n{1}", e.Message, e.StackTrace)); } } }
void BeginServer() { using (var pubSocket = new PublisherSocket()) using (var server = new ResponseSocket()) { SetText($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} 服务器启动成功!"); //绑定订阅端口 pubSocket.Bind($"tcp://{pubIP}:{pubPort}"); //绑定服务端口 server.Bind($"tcp://{serverIP}:{serverPort}"); while (true) { //接收消息 string messsage = server.ReceiveFrameString(); #region 处理消息 var data = MessageHelper.GetMessage(messsage); if (data != null) { if (data.UserStatus.Equals(UserStatus.Connect)) { data.Message = $"欢迎{data.UserName}加入聊天室"; data.UserName = "******"; } if (data.UserStatus.Equals(UserStatus.Close)) { data.Message = $"{data.UserName}退出聊天室"; data.UserName = "******"; } string file_name = ""; if (data.File != null && !string.IsNullOrEmpty(data.File.FileName)) { file_name = "上传了【" + data.File.FileName + "】文件"; } string msg = ""; if (!string.IsNullOrEmpty(data.Message)) { msg = "发送了【" + data.Message + "】消息"; } SetText($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} {data.UserName}:{file_name} {msg}"); } else { data = new DataStructure { UserName = "******", Message = "网络异常", DateTime = DateTime.Now }; } #endregion // 推送消息 pubSocket.SendMoreFrame("all").SendFrame(MessageHelper.SendMessage(data)); server.SendFrameEmpty(); } } }