Commit 84aa0562 authored by ORD's avatar ORD

Merge pull request #143 from zerox1212/master

Handle Asyncio Transports Explicitly
parents 64916085 db8186e6
...@@ -52,10 +52,12 @@ class BinaryServer(object): ...@@ -52,10 +52,12 @@ class BinaryServer(object):
self.processor = UaProcessor(self.iserver, self.transport) self.processor = UaProcessor(self.iserver, self.transport)
self.processor.set_policies(self.policies) self.processor.set_policies(self.policies)
self.data = b"" self.data = b""
self.iserver.asyncio_transports.append(transport)
def connection_lost(self, ex): def connection_lost(self, ex):
self.logger.info('Lost connection from %s, %s', self.peername, ex) self.logger.info('Lost connection from %s, %s', self.peername, ex)
self.transport.close() self.transport.close()
self.iserver.asyncio_transports.remove(self.transport)
self.processor.close() self.processor.close()
def data_received(self, data): def data_received(self, data):
...@@ -98,5 +100,7 @@ class BinaryServer(object): ...@@ -98,5 +100,7 @@ class BinaryServer(object):
def stop(self): def stop(self):
self.logger.info("Closing asyncio socket server") self.logger.info("Closing asyncio socket server")
for transport in self.iserver.asyncio_transports:
transport.close()
self.loop.call_soon(self._server.close) self.loop.call_soon(self._server.close)
self.loop.run_coro_and_wait(self._server.wait_closed()) self.loop.run_coro_and_wait(self._server.wait_closed())
...@@ -64,6 +64,7 @@ class InternalServer(object): ...@@ -64,6 +64,7 @@ class InternalServer(object):
#importer.import_xml("/home/olivier/python-opcua/schemas/Opc.Ua.NodeSet2.xml") #importer.import_xml("/home/olivier/python-opcua/schemas/Opc.Ua.NodeSet2.xml")
self.loop = utils.ThreadLoop() self.loop = utils.ThreadLoop()
self.asyncio_transports = []
self.subscription_service = SubscriptionService(self.loop, self.aspace) self.subscription_service = SubscriptionService(self.loop, self.aspace)
# create a session to use on server side # create a session to use on server side
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment