Esempio n. 1
0
        private void SocketConnected(int source, int session, string method, byte[] param)
        {
            ClusterClientSocketConnected socketConnected = new ClusterClientSocketConnected(param);
            string ipEndpoint = string.Format("{0}:{1}", socketConnected.ip, socketConnected.port);

            long tempConnection = 0;
            bool isExist        = m_node2conn.TryGetValue(ipEndpoint, out tempConnection);

            if (isExist)
            {
                m_node2conn.Remove(ipEndpoint);
            }
            m_node2conn.Add(ipEndpoint, socketConnected.connection);

            Queue <WaitForSendRequest> waitQueue = null;

            isExist = m_waitForSendRequests.TryGetValue(ipEndpoint, out waitQueue);
            if (isExist)
            {
                int count = waitQueue.Count;
                for (int i = 0; i < count; i++)
                {
                    WaitForSendRequest request = waitQueue.Dequeue();
                    RemoteRequest(request.Source, request.Method, request.Request, socketConnected.connection, request.Session);
                }
                m_waitForSendRequests.Remove(ipEndpoint);
            }
        }
Esempio n. 2
0
        private void OnConnectedComplete(int opaque, long sessionId, string ip, int port)
        {
            ClusterClientSocketConnected connected = new ClusterClientSocketConnected();

            connected.connection = sessionId;
            connected.ip         = ip;
            connected.port       = port;

            Message msg = new Message();

            msg.Source      = 0;
            msg.Destination = opaque;
            msg.Method      = "SocketConnected";
            msg.Data        = connected.encode();
            msg.RPCSession  = 0;
            msg.Type        = MessageType.Socket;

            ServiceContext service = ServiceSlots.GetInstance().Get(opaque);

            service.Push(msg);
        }