Commit 85d15081 authored by Olivier R-D's avatar Olivier R-D

server: small fixes, uaexpert can subscribe

parent cbf563eb
...@@ -23,6 +23,7 @@ class UAProcessor(object): ...@@ -23,6 +23,7 @@ class UAProcessor(object):
self.socket = socket self.socket = socket
self._lock = Lock() self._lock = Lock()
self._publishdata_queue = [] self._publishdata_queue = []
self._seq_number = 1
def loop(self): def loop(self):
#first we want a hello message #first we want a hello message
...@@ -54,8 +55,10 @@ class UAProcessor(object): ...@@ -54,8 +55,10 @@ class UAProcessor(object):
def send_response(self, requesthandle, algohdr, seqhdr, response, msgtype=ua.MessageType.SecureMessage): def send_response(self, requesthandle, algohdr, seqhdr, response, msgtype=ua.MessageType.SecureMessage):
with self._lock: with self._lock:
response.ResponseHeader.RequestHandle = requesthandle response.ResponseHeader.RequestHandle = requesthandle
seqhdr.SequenceNumber += 1 seqhdr.SequenceNumber = self._seq_number
self._seq_number += 1
hdr = ua.Header(msgtype, ua.ChunkType.Single, self.channel.SecurityToken.ChannelId) hdr = ua.Header(msgtype, ua.ChunkType.Single, self.channel.SecurityToken.ChannelId)
algohdr.TokenId = self.channel.SecurityToken.TokenId
self.write_socket(hdr, algohdr, seqhdr, response) self.write_socket(hdr, algohdr, seqhdr, response)
def write_socket(self, hdr, *args): def write_socket(self, hdr, *args):
...@@ -97,7 +100,7 @@ class UAProcessor(object): ...@@ -97,7 +100,7 @@ class UAProcessor(object):
response = ua.PublishResponse() response = ua.PublishResponse()
response.Parameters = result response.Parameters = result
requestdata = self._publishdata_queue.pop(-1) requestdata = self._publishdata_queue.pop(0)
self.send_response(requestdata.requesthdr.RequestHandle, requestdata.algohdr, requestdata.seqhdr, response) self.send_response(requestdata.requesthdr.RequestHandle, requestdata.algohdr, requestdata.seqhdr, response)
def process_body(self, header, body): def process_body(self, header, body):
......
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