Explorar el Código

Added some comments

Taddeus Kroes hace 13 años
padre
commit
efba898b73
Se han modificado 1 ficheros con 20 adiciones y 3 borrados
  1. 20 3
      frame.py

+ 20 - 3
frame.py

@@ -13,8 +13,23 @@ OPCODE_PONG = 0xA
 
 
 
 
 class Frame(object):
 class Frame(object):
+    """
+    A Frame instance represents a web socket data frame as defined in RFC 6455.
+    To encoding a frame for sending it over a socket, use Frame.pack(). To
+    receive and decode a frame from a socket, use receive_frame() (or,
+    preferably, receive_fragments()).
+    """
     def __init__(self, opcode, payload, masking_key='', final=True, rsv1=False,
     def __init__(self, opcode, payload, masking_key='', final=True, rsv1=False,
             rsv2=False, rsv3=False):
             rsv2=False, rsv3=False):
+        """
+        Create a new frame.
+        `opcode' is one of the constants as defined above.
+        `payload' is a string of bytes containing the data sendt in the frame.
+        `final` is a boolean indicating whether this frame is the last in a
+        chain of fragments.
+        `rsv1', `rsv2' and `rsv3' are booleans indicating bit values for RSV1,
+        RVS2 and RSV3, which are only non-zero if defined so by extensions.
+        """
         if len(masking_key)  not in (0, 4):
         if len(masking_key)  not in (0, 4):
             raise ValueError('invalid masking key "%s"' % masking_key)
             raise ValueError('invalid masking key "%s"' % masking_key)
 
 
@@ -90,9 +105,9 @@ class Frame(object):
 def receive_fragments(sock):
 def receive_fragments(sock):
     """
     """
     Receive a sequence of frames that belong together:
     Receive a sequence of frames that belong together:
-    - An ititial frame with non-zero opcode
+    - An initial frame with non-zero opcode
     - Zero or more frames with opcode = 0 and final = False
     - Zero or more frames with opcode = 0 and final = False
-    - A final frame with opcpde = 0 and final = True
+    - A final frame with opcode = 0 and final = True
 
 
     The first and last frame may be the same frame, having a non-zero opcode
     The first and last frame may be the same frame, having a non-zero opcode
     and final = True. Thus, this function returns a list of at least a single
     and final = True. Thus, this function returns a list of at least a single
@@ -111,11 +126,13 @@ def receive_frame(sock):
     Receive a single frame on the given socket.
     Receive a single frame on the given socket.
     """
     """
     b1, b2 = struct.unpack('!BB', recvn(sock, 2))
     b1, b2 = struct.unpack('!BB', recvn(sock, 2))
+
     final = bool(b1 & 0x80)
     final = bool(b1 & 0x80)
     rsv1 = bool(b1 & 0x40)
     rsv1 = bool(b1 & 0x40)
     rsv2 = bool(b1 & 0x20)
     rsv2 = bool(b1 & 0x20)
     rsv3 = bool(b1 & 0x10)
     rsv3 = bool(b1 & 0x10)
     opcode = b1 & 0x0F
     opcode = b1 & 0x0F
+
     mask = bool(b2 & 0x80)
     mask = bool(b2 & 0x80)
     payload_len = b2 & 0x7F
     payload_len = b2 & 0x7F
 
 
@@ -132,7 +149,7 @@ def receive_frame(sock):
         payload = recvn(sock, payload_len)
         payload = recvn(sock, payload_len)
 
 
     return Frame(opcode, payload, masking_key=masking_key, final=final,
     return Frame(opcode, payload, masking_key=masking_key, final=final,
-                    rsv1=rsv1, rsv2=rsv2, rsv3=rsv3)
+                 rsv1=rsv1, rsv2=rsv2, rsv3=rsv3)
 
 
 
 
 def recvn(sock, n):
 def recvn(sock, n):