protected void RemoteSend(string remoteNode, string service, string method, byte[] param) { ClusterClientRequest request = new ClusterClientRequest(); request.remoteNode = remoteNode; request.remoteService = service; request.method = method; request.param = Convert.ToBase64String(param); Call("clusterClient", "Request", request.encode(), null, RemoteSendDummyCallback); }
protected void RemoteCall(string remoteNode, string service, string method, byte[] param, SSContext context, RPCCallback cb) { ClusterClientRequest request = new ClusterClientRequest(); request.remoteNode = remoteNode; request.remoteService = service; request.method = method; request.param = Convert.ToBase64String(param); Call("clusterClient", "Request", request.encode(), context, cb); }
private void CacheRequest(int source, int session, string method, ClusterClientRequest request, string remoteNode) { string ipEndpoint = m_clusterConfig[remoteNode].ToString(); Queue <WaitForSendRequest> waittingQueue = null; bool isExist = m_waitForSendRequests.TryGetValue(ipEndpoint, out waittingQueue); if (!isExist) { waittingQueue = new Queue <WaitForSendRequest>(); m_waitForSendRequests.Add(ipEndpoint, waittingQueue); } if (waittingQueue.Count <= 0) { string[] ipResult = ipEndpoint.Split(':'); string remoteIp = ipResult[0]; int remotePort = Int32.Parse(ipResult[1]); ConnectMessage connectMessage = new ConnectMessage(); connectMessage.IP = remoteIp; connectMessage.Port = remotePort; connectMessage.TcpObjectId = m_tcpObjectId; connectMessage.Type = SocketMessageType.Connect; NetworkPacketQueue.GetInstance().Push(connectMessage); } WaitForSendRequest waitRequest = new WaitForSendRequest(); waitRequest.Source = source; waitRequest.Session = session; waitRequest.Method = method; waitRequest.Request = request; waittingQueue.Enqueue(waitRequest); }