Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }