// 클라이언트로부터 메시지가 왔을때 호출 public void MessageReceive(IReceiveContext context) { context.GetChannel().SendMessage("test" + i++); Console.WriteLine("Client Thread " + System.Threading.Thread.CurrentThread.ManagedThreadId + " - " + context.GetMessage()); if ((string) context.GetMessage() == "test20") SocketChannel.ExitEvent.Set(); }
// 클라이언트로부터 메시지가 왔을때 호출 public void MessageReceive(IReceiveContext context) { if(((string) context.GetMessage()).Substring(0,4) != "test") throw new Exception("Error!"); Console.WriteLine("Server Thread " + System.Threading.Thread.CurrentThread.ManagedThreadId + " - " + context.GetMessage()); context.GetChannel().SendMessage(context.GetMessage()); //context.GetChannel().SendMessage(context.GetMessage()); // 에코 서버인 만큼 온 데이터를 그대로 전송 }
// 클라이언트로부터 메시지가 왔을때 호출 public void MessageReceive(IReceiveContext context) { var o = context.GetMessage() as JObject; if(o.Value<string>("name") != "test") throw new Exception("Error!"); Console.WriteLine("Server Thread {0} - {1}", System.Threading.Thread.CurrentThread.ManagedThreadId, context.GetMessage()); context.GetChannel().SendMessage(context.GetMessage()); //context.GetChannel().SendMessage(context.GetMessage()); // 에코 서버인 만큼 온 데이터를 그대로 전송 }
// 클라이언트로부터 메시지가 왔을때 호출 public void MessageReceive(IReceiveContext context) { var o = context.GetMessage() as JObject; if (o.Value<string>("name") != "test") throw new Exception("Error!"); JObject o2 = new JObject(); o2.Add("name", "test"); o2.Add("value", i++); context.GetChannel().SendMessage(o2); Console.WriteLine("Client Thread " + System.Threading.Thread.CurrentThread.ManagedThreadId + " - " + context.GetMessage()); if (((JObject) context.GetMessage()).Value<int>("value") == 20) SocketChannel.ExitEvent.Set(); }
public void MessageReceive(IReceiveContext context) { _channelLock.EnterReadLock(); foreach (var c in _channels) c.SendMessage(context.GetMessage()); _channelLock.ExitReadLock(); }
public void MessageReceive(IReceiveContext context) { var message = (JToken)context.GetMessage(); switch (message.Value<string>("type")) { case "connect": _client.Ver = message.Value<int>("ver"); //인증 시스템을 사용한다 if(_mobile.UseAuth) { _client.Auth(message.Value<JObject>("auth")); if(_addPushData != null) { _mobile.Push.AddPush(_client, _addPushData); _addPushData = null; } } break; case "msg": _mobile.Call(new Request() { Client = _client, Type = message.Value<string>("name"), Arg = message.Value<JToken>("arg") }); break; case "add_push": if (_client.GetId() != -1) _mobile.Push.AddPush(_client, message); else _addPushData = message; break; case "remove_push": _mobile.Push.RemovePush(_client, message); break; } }
public void MessageReceive(IReceiveContext context) { dynamic message = context.GetMessage(); if (message.type == "notify_join_service") _processor.NotifyJoinService((string)message.service, (int)message.id, (byte[])message.address, (int)message.port); else if (message.type == "change_service_id") _processor.ChangeServiceId((int)message.id); else if (message.type == "max_entity_id") _processor.ChangeMaxEntityId((long)message.value); }
public void MessageReceive(IReceiveContext context) { if (context.GetChannel().GetTag() is bool) { context.GetChannel().SetTag(context.GetMessage()); SendMessage(context.GetChannel() + " name is " + context.GetChannel().GetTag() + "\r\n> "); return; } SendMessage(context.GetChannel().GetTag() + " : " + context.GetChannel() + "> "); }
public void MessageReceive(IReceiveContext context) { var packet = (JObject)context.GetMessage(); System.Console.WriteLine(packet); string type = packet["type"].Value<string>(); switch (type) { case "ant_name_list": Kernel.GetKernel().InitAnts(((JArray)packet["args"])); break; case "approve_join_ant": var args = packet["args"].Value<JObject>(); Kernel.GetKernel().ApproveJoinAnt(args["id"].Value<int>(), args["network"].Value<JArray>().Values<JObject>()); break; } }
public void MessageReceive(IReceiveContext context) { var packet = (JObject)context.GetMessage(); System.Console.WriteLine(packet); string type = packet["type"].Value<string>(); switch (type) { case "get_ant_name_list": context.GetChannel().SendMessage("ant_name_list", new JArray(QueenAnt.GetQueenAnt().GetAntNameArray())); break; case "request_join_ant": AntManager.GetAntManager().RequestJoinAnt(context.GetChannel(), packet["args"].Value<JObject>()); break; case "start_ant": AntManager.GetAntManager().StartAnt(context.GetChannel().GetTag() as Ant); break; } }
public void MessageReceive(IReceiveContext context) { var packet = (JObject)context.GetMessage(); string type = packet["type"].Value<string>(); switch (type) { case "hello_ant": var args = packet["args"].Value<JObject>(); Kernel.GetKernel().HelloAnt(context.GetChannel(), args.Value<int>("ant"), args.Value<int>("id")); break; case "request": var ant = context.GetChannel().GetTag() as RemoteAnt; ant.ReceiveTask(packet["t_id"].Value<int>(), packet["m_type"].Value<int>(), packet["args"]); break; case "response": ant = context.GetChannel().GetTag() as RemoteAnt; ant.ResponseTask(packet["t_id"].Value<int>(), packet["args"]); break; default: System.Console.WriteLine(packet); break; } }
// 클라이언트로부터 메시지가 왔을때 호출 public void MessageReceive(IReceiveContext context) { context.GetChannel().SendMessage(context.GetMessage()); // 에코 서버인 만큼 온 데이터를 그대로 전송 }
public void MessageReceive(IReceiveContext context) { var request = context.GetMessage() as Request; if(request == null) return; Processing(context.GetChannel(), request); if (request.GetHeader("Connection") == null || request.GetHeader("Connection") == "close") context.GetChannel().Disconnect(); }
public void MessageReceive(IReceiveContext context) { dynamic message = context.GetMessage(); if (message.type == "connect_service_info") _processor.ConnectServiceInfo(context.GetChannel(), (string)message.service, (int)message.id); }
public void MessageReceive(IReceiveContext context) { dynamic message = context.GetMessage(); if(message.type == "join_service") _manager.JoinService(context.GetChannel(), (string)message.name, message.id == null ? -1 : (int)message.id, (JArray)message.address, (int)message.port); }
public void MessageReceive(IReceiveContext context) { if(context.GetMessage() is ConnectionClose) { context.GetChannel().Disconnect(); return; } else if (context.GetMessage() is byte[]) { string msg = System.Text.Encoding.UTF8.GetString(context.GetMessage() as byte[]); if (msg.StartsWith("0")) { context.GetChannel().Disconnect(); } else if (msg.StartsWith("3:::")) //Message { if (msg.Length < 5) return; if (_event.ContainsKey("message")) _event["message"](msg.Substring(4)); } else if (msg.StartsWith("4:::")) //JSON Message { if (msg.Length < 5) return; if (_event.ContainsKey("message")) _event["message"](JsonConvert.DeserializeObject(msg.Substring(4))); } else if (msg.StartsWith("5:::")) //Event { if (msg.Length < 5) return; dynamic data = JsonConvert.DeserializeObject(msg.Substring(4)); if(_event.ContainsKey(data.name.ToString())) _event[data.name.ToString()](data.args); } } }