Beispiel #1
0
    def handle_stream(self, stream, addr):
        def _recv_conn_info(data):
            info = json.loads(data.decode('utf-8'))

            try:
                conntype = info['conntype']

            except KeyError:
                socket_stream.close()

            if conntype == 'main':
                self._handle_mainconn(sock_stream, addr, info)

            elif conntype == 'file':
                self._handle_fileconn(sock_stream, addr, info)

            else:
                socket_stream.close()

        fd = stream.fileno()
        self._ioloop.remove_handler(fd)
        sock_stream = SocketStream(
            socket.fromfd(fd, socket.AF_INET,
                          socket.SOCK_STREAM | socket.SOCK_NONBLOCK, 0))

        netio.recv_pack(sock_stream, _recv_conn_info)
Beispiel #2
0
        def __send_worker_info():
            def ___recv_info_cb(data):
                info = json.loads(data.decode('utf-8'))
                pubkey = open('pubkey.pem', 'r').read()
                TOJAuth(pubkey)

                self._idendesc = info['idendesc']
                self._link = info['worker_link']
                Proxy(self._link, TOJAuth.instance, self._idendesc,
                      self._conn_link)

                self.center_conn = SocketConnection(info['center_link'],
                                                    stream, self.center_addr,
                                                    self.pend_filestream,
                                                    self.del_pend_filestream)
                self.center_conn.add_close_callback(__retry)
                Proxy.instance.add_conn(self.center_conn)

                #self._init_blobclient()

                #Proxy.instance.register_call('test/','get_client_list',self._test_get_client_list)
                Proxy.instance.register_call('test/', 'test_dst',
                                             self._test_dst)
                #Proxy.instance.register_filter('test/',self._test_filter)

                try:
                    mod.load('Notice', 'notice', self._idendesc,
                             self._get_link)
                    mod.load('UserMg', 'user', self._idendesc, self._get_link)
                    mod.load('SquareMg', 'square', self._idendesc,
                             self._get_link)
                    mod.load('ProblemMg', 'problem', self._idendesc,
                             self._get_link)
                    mod.load('Mail', 'mail', self._idendesc, self._get_link)

                except Exception as e:
                    print(e)

                if self._link == '/backend/2/':
                    self._test_call(None)

            sock_ip, sock_port = self.sock_addr
            netio.send_pack(
                stream,
                bytes(
                    json.dumps({
                        'conntype': 'main',
                        'linkclass': 'backend',
                        'sock_ip': sock_ip,
                        'sock_port': sock_port,
                        'ws_ip': '210.70.137.215',
                        'ws_port': self.ws_port
                    }), 'utf-8'))
            netio.recv_pack(stream, ___recv_info_cb)
    def handle_stream(self,stream,addr):
        def _recv_conn_info(data):
            info = json.loads(data.decode('utf-8'))
            conntype = info['conntype']

            if conntype == 'main':
                self._handle_mainconn(sock_stream,addr,info)

            elif conntype == 'file':
                self._handle_fileconn(sock_stream,addr,info)

        fd = stream.fileno()
        self._ioloop.remove_handler(fd)
        sock_stream = SocketStream(socket.fromfd(fd,socket.AF_INET,socket.SOCK_STREAM | socket.SOCK_NONBLOCK,0))

        netio.recv_pack(sock_stream,_recv_conn_info)
 def __conn_cb():
     conn = Proxy.instance.get_conn(worker_link)
     if conn != None:
         __handle_pend(conn)
         main_stream.set_close_callback(None)
         main_stream.close()
     
     else:
         sock_ip,sock_port = self.sock_addr
         netio.send_pack(main_stream,bytes(json.dumps({
             'conntype':'main',
             'link':self._link,
             'sock_ip':sock_ip,
             'sock_port':sock_port
         }),'utf-8'))
         netio.recv_pack(main_stream,__recv_cb)
        def __send_worker_info():
            def ___recv_info_cb(data):
                info = json.loads(data.decode('utf-8'))
                pubkey = open('pubkey.pem','r').read()
                TOJAuth(pubkey)

                self._idendesc = info['idendesc']
                self._link = info['worker_link']
                Proxy(self._link,TOJAuth.instance,self._idendesc,self._conn_link)

                self.center_conn = SocketConnection(info['center_link'],stream,
                                                    self.center_addr,
                                                    self.pend_filestream,
                                                    self.del_pend_filestream)
                self.center_conn.add_close_callback(__retry)
                Proxy.instance.add_conn(self.center_conn)

                #self._init_blobclient()

                #Proxy.instance.register_call('test/','get_client_list',self._test_get_client_list)
                Proxy.instance.register_call('test/','test_dst',self._test_dst)
                #Proxy.instance.register_filter('test/',self._test_filter)

                try:
                    mod.load('Notice','notice',self._idendesc,self._get_link)
                    mod.load('UserMg','user',self._idendesc,self._get_link)
                    mod.load('SquareMg','square',self._idendesc,self._get_link)
                    mod.load('ProblemMg','problem',self._idendesc,self._get_link)
                    mod.load('Mail','mail',self._idendesc,self._get_link)

                except Exception as e:
                    print(e)

                if self._link == '/backend/2/':
                    self._test_call(None)

            sock_ip,sock_port = self.sock_addr
            netio.send_pack(stream,bytes(json.dumps({
                'conntype':'main',
                'linkclass':'backend',
                'sock_ip':sock_ip,
                'sock_port':sock_port,
                'ws_ip':'210.70.137.215',
                'ws_port':self.ws_port
            }),'utf-8'))
            netio.recv_pack(stream,___recv_info_cb)
Beispiel #6
0
        def __conn_cb():
            conn = Proxy.instance.get_conn(worker_link)
            if conn != None:
                __handle_pend(conn)
                main_stream.set_close_callback(None)
                main_stream.close()

            else:
                sock_ip, sock_port = self.sock_addr
                netio.send_pack(
                    main_stream,
                    bytes(
                        json.dumps({
                            'conntype': 'main',
                            'link': self._link,
                            'sock_ip': sock_ip,
                            'sock_port': sock_port
                        }), 'utf-8'))
                netio.recv_pack(main_stream, __recv_cb)