Ejemplo n.º 1
0
    //服务器广播消息
    public void severRadio(Connect c, object o)
    {
        ErlKVMessage message = o as ErlKVMessage;
        BaseFPort    service = getServiceByCmd(message.Cmd);

        if (service == null)
        {
            //没有找到对应的服务
        }
        else
        {
            service.read(message);
        }
    }
Ejemplo n.º 2
0
    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;
    }
Ejemplo n.º 3
0
 public FilterCmd(string cmd,int beginCount,BaseFPort fport)
 {
     this._cmd = cmd;
     this._beginCount = beginCount;
     this._fport = fport;
 }