예제 #1
0
	void Instance::exit()
	{
		try
		{
			ConnectionPtr conn = getConnection("ua");
			seq_t seq = conn->getNextSeq();

			MsgBody body;
			user_access_server::client_methods::rpc::UnbindRequest unbind_req;
			body.addRequest(user_access_server::client_methods::rpc::CmdID_Unbind, seq, 0, unbind_req);

			conn->send(rpc::OP_REQUEST, body);
		}
		catch (...)
		{
		}
		closeAllConnections();
	}
예제 #2
0
		AckChatMsg::AckChatMsg(InstancePtr instance, const UserID& target_uid, msg_id_t msg_id, AckChatMsg::CallbackPtr cb)
		{
			if (!msg_id)
				throw AppException("msg id is null");

			instant_messaging_server::methods::rpc::AckChatMsgRequest ack_chat_req;
			ack_chat_req.mutable_sender_usr_id()->set_uid(target_uid.uid);
			if (!target_uid.domain.empty())
				ack_chat_req.mutable_sender_usr_id()->set_domain(target_uid.domain);
			ack_chat_req.set_msg_id(msg_id);

			ConnectionPtr conn = instance->getConnection("ua");
			seq_t seq = conn->getNextSeq();

			MsgBody body;
			body.addTarget("im");
			body.addRequest(instant_messaging_server::methods::rpc::CmdID_AckChatMsg, seq, 0, ack_chat_req);

			conn->send(rpc::OP_REQUEST, body);
			conn->addRequest(seq, cb);
		}
예제 #3
0
		AckGroupSysMsg::AckGroupSysMsg(InstancePtr instance, const GroupID& group_id, const string& channel, msg_id_t sysmsg_id, AckGroupSysMsg::CallbackPtr cb)
		{
			if (!sysmsg_id)
				throw AppException("sysmsg id is null");

			group_messaging_server::methods::rpc::AckGrpSysMsgRequest ack_sys_req;
			if (!channel.empty())
				ack_sys_req.set_channel(channel);
			ack_sys_req.set_sysmsg_id(sysmsg_id);

			ConnectionPtr conn = instance->getConnection("ua");
			seq_t seq = conn->getNextSeq();

			Uri target;
			createUri(&target, "grp", group_id);

			MsgBody body;
			body.addTarget(target);
			body.addRequest(group_messaging_server::methods::rpc::CmdID_AckGrpSysMsg, seq, 0, ack_sys_req);

			conn->send(rpc::OP_REQUEST, body);
			conn->addRequest(seq, cb);
		}