Exemplo n.º 1
0
 public void access(ErlConnect connect, ErlKVMessage message, ReceiveFun receiveFun, List<object> argus, long timeOut)
 {
     ByteBuffer data = new ByteBuffer();
     message.bytesWrite(data);
     //this._list.Add(new ErlEntry(connect, message.getPort(), receiveFun, argus, timeOut + TimeKit.getMillisTime()));
     connect.sendErl(data, 1, 1, 1, 1);
 }
Exemplo n.º 2
0
 public ErlEntry(Connect connect, int number, ReceiveFun receiveFun, List <Object> argus, long timeOut)
 {
     this.connect    = connect;
     this.number     = number;
     this.receiveFun = receiveFun;
     this.argus      = argus;
     this.timeOut    = timeOut;
 }
Exemplo n.º 3
0
    /**
     * 向指定地址和端口的连接发送消息
     * @param address-消息发送地址
     * @param port-消息发送端口
     * @param handle-执行回调的函数
     * @param argus-执行回调的参数数组
     * @param data-消息发送数据 ErlKVMessage对象
     **/
    public void sendMessage(string address, int port, ErlKVMessage message, ReceiveFun handle, List <object> argus)
    {
//        if(!MiniConnectManager.IsRobot)
//        Debug.Log(message.Cmd + "," + message.toJsonString());

        ErlConnect connect = factory.getConnect(address, port) as ErlConnect;

        if (connect == null)
        {
            return;
        }
        if (connect.isActive)          // 在连接可用的情况下才发送数据
        {
            if (handle != null)
            {
                long time = MiniConnectManager.now;/**
                                                    * DataAccess.getInstance ().access (connect, message, (c,o)=>{
                                                    * time = MiniConnectManager.now - time;
                                                    * if(time > maxTime)
                                                    * {
                                                    * maxTime = time;
                                                    * maxCmd = message.Cmd;
                                                    * }
                                                    *
                                                    * if(MiniConnectManager.now - startTime > 1000)
                                                    * {
                                                    * startTime = MiniConnectManager.now;
                                                    * if(MiniConnectManager.IsRobot)
                                                    * Debug.LogError("max cmd use time:"+maxCmd+" : " + maxTime);
                                                    * }
                                                    * handle(c,o);
                                                    *
                                                    * }, argus, DataAccess.TIMEOUT);
                                                    */
                DataAccess.getInstance().access(connect, message, handle, argus, DataAccess.TIMEOUT);
            }
            else
            {
                DataAccess.getInstance().access(connect, message, messageHandle, argus, DataAccess.TIMEOUT);
            }
        }
        else            // 抛连接错误消息
        {
            MonoBehaviour.print("connect error!" + connect.isActive);
            if (GameManager.Instance != null)
            {
                GameManager.Instance.OnLostConnect(true);
            }
        }
    }
Exemplo n.º 4
0
    public void access(ErlConnect connect, ErlKVMessage message, ReceiveFun receiveFun, List <object> argus, long timeOut)
    {
        ByteBuffer data = new ByteBuffer();

        message.bytesWrite(data);
        _list.Add(new ErlEntry(connect, message.getPort(), receiveFun, argus, timeOut + TimeKit.getMillisTime()));
        connect.sendErl(data, ErlConnect.ENCRYPTION, ErlConnect.CRC, ErlConnect.COMPRESS, ErlConnect.KV);
        if (timeout == null)
        {
            timeout = TimerManager.Instance.getTimer(DELAY);
            timeout.addOnTimer(onTimer);
            timeout.start();
        }
    }
Exemplo n.º 5
0
    /** 添加通讯端口 */
    public void addPort(string portName, ReceiveFun receiveFun)
    {
        int index = _portNameArray.IndexOf(portName);

        if (index >= 0)
        {
            _receiveFunArray [index] = receiveFun;
        }
        else
        {
            _portNameArray.Add(portName);
            _receiveFunArray.Add(receiveFun);
        }
    }
Exemplo n.º 6
0
    public override void receive(Connect connect, ByteBuffer data)
    {
        String portName = data.readUTF();
        int    index    = _portNameArray.IndexOf(portName);

        if (index >= 0)
        {
            ReceiveFun rf = _receiveFunArray [index];
            rf(connect, data);
            //	var fun:Function=_receiveFunArray[index] as Function;
            //	fun(connect,data);
        }
        else
        {
            //trace(connect+",is not portName="+portName);
        }
    }
Exemplo n.º 7
0
 public void sendServer(ErlConnect connect, ErlKVMessage message, ReceiveFun receiveFun, List<object> argus, long timeOut)
 {
     ByteBuffer data = new ByteBuffer();
     message.bytesWrite(data);
     //Log.Info ("+++"+string.Concat (data.getArray ()));
     //this._list.Add(new ErlEntry(connect, message.getPort(), receiveFun, argus, timeOut + TimeKit.getMillisTime()));
     connect.sendErl(data, 1, 1, 1, 1);
 }