python类中调用另一个程序函数_Python,从另一个类调用一个类函数

importtime,sysfromapscheduler.schedulerimportSchedulerimportthreadingimportsocketfromtwisted.internetimportreactorfromtwisted.pythonimportlogfromtwisted.web.serverimportSitefromtwisted.web.staticimportFilefromautobahn.websocketimportWebSocketServerFactory,\WebSocketServerProtocol,\

listenWSclassprocess(threading.Thread):def__init__(self,buffer3):threading.Thread.__init__(self)self.setDaemon(True)self.buffer3=buffer3defrun(self):factory.broadcast("I don't know what I'm doing!")classBroadcastServerProtocol(WebSocketServerProtocol):defonOpen(self):self.factory.register(self)defonMessage(self,msg,binary):ifnotbinary:self.factory.broadcast("'%s' from %s"%(msg,self.peerstr))defconnectionLost(self,reason):WebSocketServerProtocol.connectionLost(self,reason)self.factory.unregister(self)classBroadcastServerFactory(WebSocketServerFactory):"""

Simple broadcast server broadcasting any message it receives to all

currently connected clients.

"""def__init__(self,url,debug=False,debugCodePaths=False):WebSocketServerFactory.__init__(self,url,debug=debug,debugCodePaths=debugCodePaths)self.clients=[]self.tickcount=0self.tick()deftick(self):self.tickcount+=1self.broadcast("'tick %d' from server"%self.tickcount)reactor.callLater(1,self.tick)defregister(self,client):ifnotclientinself.clients:print"registered client "+client.peerstr

self.clients.append(client)defunregister(self,client):ifclientinself.clients:print"unregistered client "+client.peerstr

self.clients.remove(client)defbroadcast(self,msg):print"broadcasting message '%s' .."%msgforcinself.clients:c.sendMessage(msg)print"message sent to "+c.peerstrclassBroadcastPreparedServerFactory(BroadcastServerFactory):"""

Functionally same as above, but optimized broadcast using

prepareMessage and sendPreparedMessage.

"""defbroadcast(self,msg):print"broadcasting prepared message '%s' .."%msg

preparedMsg=self.prepareMessage(msg)forcinself.clients:c.sendPreparedMessage(preparedMsg)print"prepared message sent to "+c.peerstrdeftesting():buffer2-"hello"myDisplay=process(buffer2)myDisplay.start()if__name__=='__main__':iflen(sys.argv)>1andsys.argv[1]=='debug':log.startLogging(sys.stdout)debug=Trueelse:debug=Falselevel_scheduler=Scheduler()level_scheduler.add_interval_job(testing,seconds=5)level_scheduler.start()#ServerFactory = BroadcastServerFactoryServerFactory=BroadcastPreparedServerFactoryfactory=ServerFactory("ws://localhost:9000",debug=debug,debugCodePaths=debug)factory.protocol=BroadcastServerProtocolfactory.setProtocolOptions(allowHixie76=True)listenWS(factory)webdir=File(".")web=Site(webdir)reactor.listenTCP(8080,web)reactor.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值