Esempio n. 1
0
void my::GateServer::init()
{
	boost::shared_ptr<TcpServer> serverPtr(this); //make sure that shared_from_this() can run perfectly ok!
	Json::Value gateConf = util::fileSystem::loadJsonFileEval(jsonconf::server_config);
	if (gateConf == Json::nullValue)
	{
		LogW << "Error init GateServer, null gateConf" << LogEnd;
		return;
	}
	//初始化httpSvr
	{
		m_HttpServerPtr = HttpServerPtr(new http::HttpServer());
		m_HttpServerPtr->init(gateConf);
		m_HttpServerPtr->run();
	}
	m_GateConf = gateConf;
	int	port = gateConf["gateSvrPort"].asInt();
	std::string gameSvrIp = gateConf["gameSvrIp"].asString();
	int gameSvrPort = gateConf["gameSvrPort"].asInt();
	std::string accountSvrIp = gateConf["accountSvrIp"].asString();
	int accountSvrPort = gateConf["accountSvrPort"].asInt();

	m_nConnCount = 0;
	m_nNetIdHolder = 0;
	m_pEndpoint = EndpointPtr(new boost::asio::ip::tcp::endpoint(ip::tcp::v4(), port));
	m_pAcceptor = AcceptorPtr(new boost::asio::ip::tcp::acceptor(core.getService(), *m_pEndpoint));

	m_GateHandler = boost::shared_ptr<GateHandler>(new GateHandler());
	ConnectionPtr nextConn = boost::shared_ptr<TcpConnection>(new TcpConnection(core.getService(), m_GateHandler, shared_from_this()));
	m_pAcceptor->async_accept(nextConn->getSocket(), boost::bind(&GateServer::handle_accept, this, nextConn, boost::asio::placeholders::error));

	connectToGameSvr(gameSvrIp, gameSvrPort);
	connectToAccountSvr(accountSvrIp, accountSvrPort);

	LogD << "Init Gate Server Ok!!!" << LogEnd;

	update();
}
 EndpointPtr MulticastClientTransport::getEndpointPtr() const
 {
     RCF_ASSERT(0);
     return EndpointPtr();
 }
Esempio n. 3
0
 EndpointPtr UdpEndpoint::clone() const
 {
     return EndpointPtr(new UdpEndpoint(*this));
 }
 EndpointPtr Win32NamedPipeEndpoint::clone() const
 {
     return EndpointPtr( new Win32NamedPipeEndpoint(*this) );
 }
Esempio n. 5
0
 EndpointPtr TcpEndpoint::clone() const
 {
     return EndpointPtr(new TcpEndpoint(*this));
 }
 EndpointPtr UnixLocalEndpoint::clone() const
 {
     return EndpointPtr( new UnixLocalEndpoint(*this) );
 }
 EndpointPtr InProcessTransport::getEndpointPtr() const
 {
     RCF_ASSERT(0);
     return EndpointPtr();
 }
Esempio n. 8
0
 EndpointPtr UnixLocalClientTransport::getEndpointPtr() const
 {
     return EndpointPtr( new UnixLocalEndpoint(mFileName) );
 }
Esempio n. 9
0
 EndpointPtr HttpEndpoint::clone() const
 {
     return EndpointPtr( new HttpEndpoint(*this) );
 }