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); }
public override Connect openConnect(string localAddress, int localPort) { ErlConnect connect = new ErlConnect(); connect.open(localAddress, localPort); connect.portHandler = DataAccess.getInstance(); return connect; }
public Connect openConnect(Socket _socket) { ErlConnect connect = new ErlConnect(); connect.open(_socket); connect.portHandler = DataAccess.getInstance(); return connect; }
//打开指定地址的连接 override public Connect openConnect(string localAddress, int localPort) { ErlConnect c = new ErlConnect(); c.open(localAddress, localPort); c.portHandler = DataAccess.getInstance(); return(c); }
/** 指定连接是否可用 */ public Boolean isActive(string address, int port) { ErlConnect erlConnect = factory.checkInstance(address, port) as ErlConnect; if (erlConnect == null) { return(false); } return(erlConnect.isActive); }
/** 获取指定连接的ping延迟时间 */ public int getPing(string address, int port) { ErlConnect erlConnect = factory.checkInstance(address, port) as ErlConnect; if (erlConnect == null) { return(0); } return((int)erlConnect.ping); }
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(); } }
/** * 向指定地址和端口的连接发送消息 * @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); } } }
/** 获得指定连接当前状态(返回0表示连接正常,1连接不存在,2连接存在但不可用) */ public int getConnectStatus(string address, int port) { ErlConnect erlConnect = factory.checkInstance(address, port) as ErlConnect; if (erlConnect == null) { return(1); } if (!erlConnect.isActive) { return(2); } return(0); }
public Connect beginConnect(Socket _socket) { String localAddress = (_socket.RemoteEndPoint as IPEndPoint).Address.ToString (); int localPort = (_socket.RemoteEndPoint as IPEndPoint).Port; Connect item = this.checkInstance(localAddress, localPort); if (item == null) { //item = this.openConnect(_socket); item = new ErlConnect(); item.socket = _socket; this.connectArray.Add(item); //item.CallBack = callBack; //item.ConnectInvalidBack = invalidBack; return item; } //callBack(); return item; }
public void sendServer(ErlConnect connect , ErlKVMessage message) { DataAccess.getInstance().sendServer(connect, message, null, null, 0x4e20L); }
public TransPort(ErlConnect _erlConnect) { this.erlConnect = _erlConnect; this.erlConnect.portHandler = this; }
protected virtual void pingHandle(ErlConnect connect, ErlKVMessage erlMessage) { }
//public readonly Logger Log = LogManager.GetLogger("ClientPort"); //private CallBack _callBack; public ClientPort(ErlConnect _erlConnect) { this.erlConnect = _erlConnect; this.erlConnect.portHandler = this; }
//执行ping通信返回消息的执行方法 protected virtual void pingHandle(ErlConnect connect, ErlKVMessage erlMessage) { }
public static void Main(String[] args) { ErlConnect et = new ErlConnect (); System.Console.Write (string.Concat (et.getPK (80543948))); }
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); }
public BaseFPort(ErlConnect _socket) { this._erlConnect = _socket; }