60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
###############################################################################
|
|
##
|
|
## Copyright (C) 2013 Tavendo GmbH
|
|
##
|
|
## Licensed under the Apache License, Version 2.0 (the "License");
|
|
## you may not use this file except in compliance with the License.
|
|
## You may obtain a copy of the License at
|
|
##
|
|
## http://www.apache.org/licenses/LICENSE-2.0
|
|
##
|
|
## Unless required by applicable law or agreed to in writing, software
|
|
## distributed under the License is distributed on an "AS IS" BASIS,
|
|
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
## See the License for the specific language governing permissions and
|
|
## limitations under the License.
|
|
##
|
|
###############################################################################
|
|
|
|
import binascii
|
|
|
|
from autobahn.util import newid
|
|
from autobahn.wamp2.serializer import JsonSerializer, MsgPackSerializer, WampSerializer
|
|
from autobahn.wamp2.message import *
|
|
|
|
|
|
if __name__ == '__main__':
|
|
serializers = [WampSerializer(JsonSerializer()), WampSerializer(MsgPackSerializer())]
|
|
totals = {}
|
|
|
|
EVENT1 = ["Hello, world!", 0.123456789, {'foo': 23, 'bar': 'baz', 'moo': True}, [True, True, False]]
|
|
msgs = [
|
|
WampMessagePublish("http://myapp.com/topic1", EVENT1),
|
|
WampMessagePublish("http://myapp.com/topic1", EVENT1, excludeMe = False),
|
|
WampMessagePublish("http://myapp.com/topic1", EVENT1, eligible = [newid(), newid(), newid()]),
|
|
WampMessagePublish("http://myapp.com/topic1", EVENT1, discloseMe = True, excludeMe = True, exclude = [newid()]),
|
|
]
|
|
|
|
for msg_out in msgs:
|
|
for ser in serializers:
|
|
|
|
bytes, isbinary = ser.serialize(msg_out)
|
|
|
|
if not totals.has_key(ser._serializer):
|
|
totals[ser._serializer] = 0
|
|
|
|
totals[ser._serializer] += len(bytes)
|
|
|
|
if isbinary:
|
|
print len(bytes), binascii.hexlify(bytes)
|
|
else:
|
|
print len(bytes), bytes
|
|
|
|
msg_in = ser.unserialize(bytes, isbinary)
|
|
print msg_in
|
|
print
|
|
assert(msg_in == msg_out)
|
|
|
|
for k, v in totals.items():
|
|
print k, v
|