Exemple #1
0
def _doChildConnect(name, transport):
    """当server节点连接到master的处理
    """
    server_config = GlobalObject().json_config.get('servers', {}).get(name, {})
    remoteport = server_config.get('remoteport', [])
    child_host = transport.broker.transport.client[0]
    root_list = [rootport.get('rootname') for rootport in remoteport]
    GlobalObject().remote_map[name] = {
        "host": child_host,
        "root_list": root_list
    }
    # 通知有需要连的node节点连接到此root节点
    for servername, remote_list in GlobalObject().remote_map.items():
        remote_host = remote_list.get("host", "")
        remote_name_host = remote_list.get("root_list", "")
        if name in remote_name_host:
            GlobalObject().root.callChild(servername, "remote_connect", name,
                                          remote_host)
    # 查看当前是否有可供连接的root节点
    master_node_list = GlobalObject().remote_map.keys()
    for root_name in root_list:
        if root_name in master_node_list:
            root_host = GlobalObject().remote_map[root_name]['host']
            GlobalObject().root.callChild(name, "remote_connect", root_name,
                                          root_host)
def _doChildConnect(name,transport):
    """当server节点连接到master的处理
    """
    server_config = GlobalObject().json_config.get('servers',{}).get(name,{})
    remoteport = server_config.get('remoteport',[])
    child_host = transport.broker.transport.client[0]
    root_list = [rootport.get('rootname') for rootport in remoteport]
    GlobalObject().remote_map[name] = {"host":child_host,"root_list":root_list}
    #通知有需要连的node节点连接到此root节点
    for serverName,remote_list in GlobalObject().remote_map.items():
        remote_host = remote_list.get("host","")
        remote_name_host = remote_list.get("root_list","")
        if name in remote_name_host:
            GlobalObject().root.callChild(serverName,"remote_connect",name,remote_host)
    #查看当前是否有可供连接的root节点
    master_node_list = GlobalObject().remote_map.keys()
    for root_name in root_list:
        if root_name in master_node_list:
            root_host = GlobalObject().remote_map[root_name]['host']
            GlobalObject().root.callChild(name,"remote_connect",root_name,root_host)
Exemple #3
0
def _doChildConnect(name,transport):
    """当server节点连接到master的处理
    """
    server_config = GlobalObject().json_config.get('servers',{}).get(name,{})  # servers下的gate dbfront net admin game1 等模块
    remoteport = server_config.get('remoteport',[])  # 获得 remoteport(gate的port)[{"rootport":"10000", "rootname":"gate"}]
    child_host = transport.broker.transport.client[0]  # 子节点主机地址
    root_list = [rootport.get('rootname') for rootport in remoteport]  # 如果有多个{},就获取多个rootname
    GlobalObject().remote_map[name] = {"host":child_host,"root_list":root_list}  # map 映射
    #通知有需要连的node节点连接到此root节点
    for servername,remote_list in GlobalObject().remote_map.items():
        remote_host = remote_list.get("host","")  # 获得 远程子节点的主机地址
        remote_name_host = remote_list.get("root_list","")  # 获得 远程子节点的名字
        if name in remote_name_host:  # 可连接
            # 子节点主机地址  "remote_connect"  root节点名  root主机地址
            GlobalObject().root.callChild(servername,"remote_connect",name,remote_host)
    #查看当前是否有可供连接的root节点
    master_node_list = GlobalObject().remote_map.keys()  # 远程节点列表
    for root_name in root_list:  # server节点的root
        if root_name in master_node_list:  # 可连接
            root_host = GlobalObject().remote_map[root_name]['host']  # root的主机地址
            # 子节点主机地址  "remote_connect"  root节点名  root主机地址
            GlobalObject().root.callChild(name,"remote_connect",root_name,root_host)
Exemple #4
0
from portal.command_table import init_command
from portal.protocol import DataPacker
from portal.process import user_login
from portal.process import user_logout
from portal.process import data_received

#初始化 command id 表
command_file = GlobalObject().json_config.get("command_data")
init_command(command_file)

#定制 Factory 的方法
GlobalObject().netfactory.doDataReceived = data_received
GlobalObject().netfactory.doConnectionMade = user_login
GlobalObject().netfactory.doConnectionLost = user_logout

#初始化 token redis
_token_redis_conf = GlobalObject().cache_config.get("token_redis")
TokenRedisAgent().connect(_token_redis_conf.get('ip'),
                          _token_redis_conf.get('port'),
                          _token_redis_conf.get('db'),
                          _token_redis_conf.get('password'))

#配置数据解析协议
dataprotocl = DataPacker()
GlobalObject().netfactory.setDataProtocl(dataprotocl)

import portal.service
import portal.forward

logger.trace("Load portal module succeed")
Exemple #5
0
Created on 2016-05-17
@Author: jiangtaoran([email protected])
@Brief : Unit 模块逻辑入口
"""

from twisted.internet import reactor
from firefly.server.globalobject import GlobalObject
from utils import logger
from datalib.data_proxy4redis import DataRedisAgent
from datalib.data_loader import load_data
from datalib.table import TableDescription
from datalib.global_data import DataBase
from unit.city_view import CityData
import unit.service

_redis_conf = GlobalObject().cache_config.get('data_redis')
DataRedisAgent().connect(_redis_conf.get('ip'), _redis_conf.get('port'),
                         _redis_conf.get('db'), _redis_conf.get('password'))

_data_conf = GlobalObject().json_config.get('dataconf')
load_data(_data_conf)

_table_conf = GlobalObject().json_config.get("tableconf")
table = TableDescription()
table.parse(_table_conf)
GlobalObject().table_desc = table

DataBase().register_datatype(CityData)

logger.trace("Load Unit module succeed")
Exemple #6
0
from utils.chat_pool import ChatPool
from datalib.data_proxy4redis import DataRedisAgent
from datalib.data_loader import load_data
from datalib.table import TableDescription
from datalib.global_data import DataBase
from app.user_view import UserData
from app.basic_view import BasicData
from app.core.pay import PayRedisAgent
from app.data.cdkey import CDkeyRedisAgent
import app.service
from app.business import event
from app.core.pay import PayLogic

#初始化 Redis 连接
_redis_conf = GlobalObject().cache_config.get('data_redis')
DataRedisAgent().connect(_redis_conf.get('ip'), _redis_conf.get('port'),
                         _redis_conf.get('db'), _redis_conf.get('password'))

_pay_redis_conf = GlobalObject().cache_config.get('pay_redis')
PayRedisAgent().connect(_pay_redis_conf.get('ip'), _pay_redis_conf.get('port'),
                        _pay_redis_conf.get('db'),
                        _pay_redis_conf.get('password'))

_cdkey_redis_conf = GlobalObject().cache_config.get('cdkey_redis')
CDkeyRedisAgent().connect(_cdkey_redis_conf.get('ip'),
                          _cdkey_redis_conf.get('port'),
                          _cdkey_redis_conf.get('db'),
                          _cdkey_redis_conf.get('password'))

#读入所有 Excel
_data_conf = GlobalObject().json_config.get('dataconf')
Exemple #7
0
            defer_data = target(targetKey, *args, **kw)
            if not defer_data:
                return None
            if isinstance(defer_data, defer.Deferred):
                return defer_data
            d = defer.Deferred()
            d.callback(defer_data)
        finally:
            self._lock.release()
        return d


###########################################################################################

msgdistribute = GlobalObject().json_config.get("msgdistribute")
msgrule = msgdistribute.get('rule')
msgdefault = msgdistribute.get('default')
servername = GlobalObject().json_config.get("name")
iswebsocket = GlobalObject().json_config.get("iswebsocket", False)
if iswebsocket:
    GlobalObject().netfactory.protocol = websocket.WebSocketHandler
logpath = GlobalObject().json_config.get('log')
servername = GlobalObject().json_config.get('name')
if logpath:
    if logpath:
        log.addObserver(loogoo(logpath))  #日志处理
    log.startLogging(sys.stdout)

###########################################################################################

netservice = NetCommandService("loginService")