//服务器广播消息 public void severRadio(Connect c, object o) { ErlKVMessage message = o as ErlKVMessage; BaseFPort service = getServiceByCmd(message.Cmd); if (service == null) { //没有找到对应的服务 } else { service.read(message); } }
public Boolean procCmd(int _port , BaseFPort fport) { if (needProcCmdDict.ContainsKey(_port)) { string cCmd = needProcCmdDict [_port]; if (FilterCmdDict [cCmd]._count >= FilterCmdDict [cCmd]._beginCount) { String strValue = ConfigHelper.GetAppConfig (cCmd); ErlKVMessage msg = new ErlKVMessage ("r_ok"); msg.addValue (null, new ErlInt (_port)); ErlType[] et = StringKit.strToErlTypeArray (strValue); ErlArray ea = new ErlArray (et); msg.addValue ("msg", ea); Log.Info(msg.Cmd+"|"+ msg.toJsonString()); ByteBuffer data = new ByteBuffer(); //data.writeBytes (mybak); msg.bytesWrite(data); data.top = (int)data.bytesAvailable; byte[] tmpdata= new byte[(int)data.bytesAvailable]; data.readBytes (tmpdata, 0, tmpdata.Length); fport.erlConnect.tmpBuffer.position = 0; Log.Info (fport.erlConnect.tmpBuffer) ; ByteBuffer tmp1 = new ByteBuffer(); tmp1.writeBytes (tmpdata); //this.erlConnect.send (this.erlConnect.tmpBuffer); if (fport.erlConnect.socket.Connected) { fport.send (fport.erlConnect, msg); } else { Log.Info ("客户端已断开不再回传"); } //base.erlConnect.socket.Send (bak); FilterCmdDict [cCmd]._count--; Log.Info ("处理完成的CMD[" + cCmd + "]"); return true ; } } return false; }
public FilterCmd(string cmd,int beginCount,BaseFPort fport) { this._cmd = cmd; this._beginCount = beginCount; this._fport = fport; }