@@ -372,7 +372,7 @@ public void PrepareReceiveFrame(byte[] buffer, long offset, long size)
372372 byte opcode = ( byte ) ( WsReceiveFrameBuffer [ 0 ] & 0x0F ) ;
373373 bool fin = ( ( WsReceiveFrameBuffer [ 0 ] >> 7 ) & 0x01 ) != 0 ;
374374 bool mask = ( ( WsReceiveFrameBuffer [ 1 ] >> 7 ) & 0x01 ) != 0 ;
375- long payload = WsReceiveFrameBuffer [ 1 ] & ( ~ 0x80 ) ;
375+ long payload = ( long ) WsReceiveFrameBuffer [ 1 ] & ( ~ 0x80 ) ;
376376
377377 // Prepare WebSocket opcode
378378 WsOpcode = ( opcode != 0 ) ? opcode : WsOpcode ;
@@ -395,7 +395,7 @@ public void PrepareReceiveFrame(byte[] buffer, long offset, long size)
395395 }
396396 }
397397
398- payload = ( ( WsReceiveFrameBuffer [ 2 ] << 8 ) | ( WsReceiveFrameBuffer [ 3 ] << 0 ) ) ;
398+ payload = ( ( ( long ) WsReceiveFrameBuffer [ 2 ] << 8 ) | ( ( long ) WsReceiveFrameBuffer [ 3 ] << 0 ) ) ;
399399 WsHeaderSize = 4 + ( mask ? 4 : 0 ) ;
400400 WsPayloadSize = payload ;
401401 }
@@ -411,7 +411,7 @@ public void PrepareReceiveFrame(byte[] buffer, long offset, long size)
411411 }
412412 }
413413
414- payload = ( ( WsReceiveFrameBuffer [ 2 ] << 56 ) | ( WsReceiveFrameBuffer [ 3 ] << 48 ) | ( WsReceiveFrameBuffer [ 4 ] << 40 ) | ( WsReceiveFrameBuffer [ 5 ] << 32 ) | ( WsReceiveFrameBuffer [ 6 ] << 24 ) | ( WsReceiveFrameBuffer [ 7 ] << 16 ) | ( WsReceiveFrameBuffer [ 8 ] << 8 ) | ( WsReceiveFrameBuffer [ 9 ] << 0 ) ) ;
414+ payload = ( ( ( long ) WsReceiveFrameBuffer [ 2 ] << 56 ) | ( ( long ) WsReceiveFrameBuffer [ 3 ] << 48 ) | ( ( long ) WsReceiveFrameBuffer [ 4 ] << 40 ) | ( ( long ) WsReceiveFrameBuffer [ 5 ] << 32 ) | ( ( long ) WsReceiveFrameBuffer [ 6 ] << 24 ) | ( ( long ) WsReceiveFrameBuffer [ 7 ] << 16 ) | ( ( long ) WsReceiveFrameBuffer [ 8 ] << 8 ) | ( ( long ) WsReceiveFrameBuffer [ 9 ] << 0 ) ) ;
415415 WsHeaderSize = 10 + ( mask ? 4 : 0 ) ;
416416 WsPayloadSize = payload ;
417417 }
@@ -481,7 +481,7 @@ public void PrepareReceiveFrame(byte[] buffer, long offset, long size)
481481 if ( WsReceiveFinalBuffer . Size >= 2 )
482482 {
483483 sindex += 2 ;
484- status = ( ( WsReceiveFinalBuffer [ 0 ] << 8 ) | ( WsReceiveFinalBuffer [ 1 ] << 0 ) ) ;
484+ status = ( ( ( int ) WsReceiveFinalBuffer [ 0 ] << 8 ) | ( ( int ) WsReceiveFinalBuffer [ 1 ] << 0 ) ) ;
485485 }
486486
487487 // Call the WebSocket close handler
@@ -517,7 +517,7 @@ public long RequiredReceiveFrameSize()
517517 return 2 - WsReceiveFrameBuffer . Size ;
518518
519519 bool mask = ( ( WsReceiveFrameBuffer [ 1 ] >> 7 ) & 0x01 ) != 0 ;
520- long payload = WsReceiveFrameBuffer [ 1 ] & ( ~ 0x80 ) ;
520+ long payload = ( long ) WsReceiveFrameBuffer [ 1 ] & ( ~ 0x80 ) ;
521521
522522 // Required WebSocket frame size
523523 if ( ( payload == 126 ) && ( WsReceiveFrameBuffer . Size < 4 ) )
0 commit comments