@@ -1349,7 +1349,9 @@ def send_fragment(self, message, compress=False):
13491349 lib .uws_ws_send_fragment (self .app .SSL , self .ws , b"" , 0 , compress )
13501350 return self
13511351 else :
1352- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1352+ data = self .app ._json_serializer .dumps (message )
1353+ if isinstance (data , str ):
1354+ data = data .encode ("utf-8" )
13531355
13541356 return SendStatus (
13551357 lib .uws_ws_send_fragment (
@@ -1370,7 +1372,9 @@ def send_last_fragment(self, message, compress=False):
13701372 lib .uws_ws_send_last_fragment (self .app .SSL , self .ws , b"" , 0 , compress )
13711373 return self
13721374 else :
1373- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1375+ data = self .app ._json_serializer .dumps (message )
1376+ if isinstance (data , str ):
1377+ data = data .encode ("utf-8" )
13741378
13751379 return SendStatus (
13761380 lib .uws_ws_send_last_fragment (
@@ -1393,7 +1397,9 @@ def send_first_fragment(self, message, opcode=OpCode.BINARY, compress=False):
13931397 )
13941398 return self
13951399 else :
1396- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1400+ data = self .app ._json_serializer .dumps (message )
1401+ if isinstance (data , str ):
1402+ data = data .encode ("utf-8" )
13971403
13981404 return SendStatus (
13991405 lib .uws_ws_send_first_fragment_with_opcode (
@@ -1420,7 +1426,9 @@ def send(self, message, opcode=OpCode.BINARY, compress=False, fin=True):
14201426 )
14211427 return self
14221428 else :
1423- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1429+ data = self .app ._json_serializer .dumps (message )
1430+ if isinstance (data , str ):
1431+ data = data .encode ("utf-8" )
14241432
14251433 return SendStatus (
14261434 lib .uws_ws_send_with_options (
@@ -1447,7 +1455,9 @@ def end(self, code=0, message=None):
14471455 lib .uws_ws_end (self .app .SSL , self .ws , b"" , 0 )
14481456 return self
14491457 else :
1450- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1458+ data = self .app ._json_serializer .dumps (message )
1459+ if isinstance (data , str ):
1460+ data = data .encode ("utf-8" )
14511461
14521462 lib .uws_ws_end (self .app .SSL , self .ws , code , data , len (data ))
14531463 finally :
@@ -1851,7 +1861,9 @@ def send(
18511861 )
18521862 return self
18531863 else :
1854- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1864+ data = self .app ._json_serializer .dumps (message )
1865+ if isinstance (data , str ):
1866+ data = data .encode ("utf-8" )
18551867 content_type = b"application/json"
18561868
18571869 if isinstance (status , int ):
@@ -1912,7 +1924,9 @@ def end(self, message, end_connection=False):
19121924 return self
19131925 else :
19141926 self .write_header (b"Content-Type" , b"application/json" )
1915- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
1927+ data = self .app ._json_serializer .dumps (message )
1928+ if isinstance (data , str ):
1929+ data = data .encode ("utf-8" )
19161930 lib .uws_res_end (
19171931 self .app .SSL , self .res , data , len (data ), 1 if end_connection else 0
19181932 )
@@ -1955,9 +1969,9 @@ def write_status(self, status_or_status_text):
19551969 elif isinstance (status_or_status_text , bytes ):
19561970 data = status_or_status_text
19571971 else :
1958- data = self .app ._json_serializer .dumps (status_or_status_text ). encode (
1959- "utf-8"
1960- )
1972+ data = self .app ._json_serializer .dumps (status_or_status_text )
1973+ if isinstance ( data , str ):
1974+ data = data . encode ( "utf-8" )
19611975
19621976 lib .uws_res_write_status (self .app .SSL , self .res , data , len (data ))
19631977 return self
@@ -1970,7 +1984,9 @@ def write_header(self, key, value):
19701984 elif isinstance (key , bytes ):
19711985 key_data = key
19721986 else :
1973- key_data = self .app ._json_serializer .dumps (key ).encode ("utf-8" )
1987+ key_data = self .app ._json_serializer .dumps (key )
1988+ if isinstance (key_data , str ):
1989+ key_data = key_data .encode ("utf-8" )
19741990
19751991 if isinstance (value , int ):
19761992 lib .uws_res_write_header_int (
@@ -1985,7 +2001,9 @@ def write_header(self, key, value):
19852001 elif isinstance (value , bytes ):
19862002 value_data = value
19872003 else :
1988- value_data = self .app ._json_serializer .dumps (value ).encode ("utf-8" )
2004+ value_data = self .app ._json_serializer .dumps (value )
2005+ if isinstance (value_data , str ):
2006+ value_data = value_data .encode ("utf-8" )
19892007 lib .uws_res_write_header (
19902008 self .app .SSL ,
19912009 self .res ,
@@ -2014,7 +2032,9 @@ def write(self, message):
20142032 elif isinstance (message , bytes ):
20152033 data = message
20162034 else :
2017- data = self .app ._json_serializer .dumps (message ).encode ("utf-8" )
2035+ data = self .app ._json_serializer .dumps (message )
2036+ if isinstance (data , str ):
2037+ data = data .encode ("utf-8" )
20182038 lib .uws_res_write (self .app .SSL , self .res , data , len (data ))
20192039 return self
20202040
@@ -2461,7 +2481,9 @@ def get_header(self, lower_case_header):
24612481 elif isinstance (lower_case_header , bytes ):
24622482 data = lower_case_header
24632483 else :
2464- data = self .app ._json_serializer .dumps (lower_case_header ).encode ("utf-8" )
2484+ data = self .app ._json_serializer .dumps (lower_case_header )
2485+ if isinstance (data , str ):
2486+ data = data .encode ("utf-8" )
24652487
24662488 buffer = ffi .new ("char**" )
24672489 length = lib .uws_req_get_header (self .req , data , len (data ), buffer )
@@ -2498,7 +2520,9 @@ def get_query(self, key):
24982520 elif isinstance (key , bytes ):
24992521 key_data = key
25002522 else :
2501- key_data = self .app ._json_serializer .dumps (key ).encode ("utf-8" )
2523+ key_data = self .app ._json_serializer .dumps (key )
2524+ if isinstance (key_data , str ):
2525+ key_data = key_data .encode ("utf-8" )
25022526
25032527 length = lib .uws_req_get_query (self .req , key_data , len (key_data ), buffer )
25042528 buffer_address = ffi .addressof (buffer , 0 )[0 ]
@@ -3012,7 +3036,9 @@ def publish(self, topic, message, opcode=OpCode.BINARY, compress=False):
30123036 elif message is None :
30133037 message_data = b""
30143038 else :
3015- message_data = self ._json_serializer .dumps (message ).encode ("utf-8" )
3039+ message_data = self ._json_serializer .dumps (message )
3040+ if isinstance (message_data , str ):
3041+ message_data = message_data .encode ("utf-8" )
30163042
30173043 return bool (
30183044 lib .uws_publish (
0 commit comments