public void Disconnected(IReceiveContext context) { channelLock.EnterWriteLock(); _channels.Remove(context.GetChannel()); channelLock.ExitWriteLock(); SendMessage(context.GetChannel() + " 88" + "\r\n> "); }
public void Connected(IReceiveContext context) { context.GetChannel().SetTag(false); channelLock.EnterWriteLock(); _channels.AddLast(context.GetChannel()); channelLock.ExitWriteLock(); SendMessage("hi! " + context.GetChannel()); context.GetChannel().SendMessage("your name\r\n>"); }
// 클라이언트로부터 메시지가 왔을때 호출 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 Connected(IReceiveContext channel) { JObject o = new JObject(); o.Add("name", "test"); o.Add("value", i++); channel.GetChannel().SendMessage(o); }
public void Connected(IReceiveContext context) { dynamic packet = new JObject(); packet.type = "connect_service_info"; packet.service = _processor.GetServiceLoader().GetServiceName(); packet.id = _processor.GetServiceId(); context.GetChannel().SendMessage(packet); }
// 클라이언트로부터 메시지가 왔을때 호출 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 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 Connected(IReceiveContext context) { if (context.GetChannel().ToString().Substring(0, context.GetChannel().ToString().IndexOf(":", StringComparison.Ordinal)) != _channel.ToString().Substring(0, _channel.ToString().IndexOf(":", StringComparison.Ordinal))) { context.GetChannel().Disconnect(); return; } _channel = context.GetChannel(); _channel.SetConfig("handler", this); _socketIO.Emit("connection", this); Send("1", "", _endPoint + "?server=netronics"); if(_heartbeatTimer == null) _heartbeatTimer = new Timer(state => Send("2", ""), null, 0, 10000); }
// 클라이언트로부터 메시지가 왔을때 호출 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 Disconnected(IReceiveContext context) { if(context.GetChannel() != _channel) return; if (_heartbeatTimer != null) _heartbeatTimer.Dispose(); _heartbeatTimer = null; Send("0", ""); _socketIO.Emit("disconnect", this); }
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 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 Connected(IReceiveContext context) { _channelLock.EnterWriteLock(); _channels.AddLast(context.GetChannel()); _channelLock.ExitWriteLock(); }
public int ReceiveSwitching(IReceiveContext context) { return context.GetChannel().GetHashCode(); }
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); } } }
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 Connected(IReceiveContext context) { context.GetChannel().SendMessage(_processor.GetJoinServicePacket()); }
public void Connected(IReceiveContext context) { Kernel.GetKernel().QueenConnected(context.GetChannel()); }
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 Connected(IReceiveContext channel) { channel.GetChannel().SendMessage("test" + i++); }
public void Disconnected(IReceiveContext context) { _channelLock.EnterWriteLock(); _channels.Remove(context.GetChannel()); _channelLock.ExitWriteLock(); }
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); }