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); } }
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); }