hab ne ganz interessante Webseite dazu gefunden: http://enterprisewebbook.com/ch8_websockets.html

Ich muss also, bevor ich die Kommunikation beginnen kann erst mal einen Schlüssel bearbeiten und dann zurückschicken...
Mein Programm um das zu testen sieht momentan so aus:

Code:
import hashlib
import base64

MAGIC = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
HSHAKE_RESP = "HTTP/1.1 101 Switching Protocols\r\n" + \
            "Upgrade: websocket\r\n" + \
            "Connection: Upgrade\r\n" + \
            "Sec-WebSocket-Accept: %s\r\n" + \
            "\r\n"

data = "GET HTTP/1.1\r\n" + \
    "Upgrade: websocket\r\n" + \
    "Connection: Upgrade\r\n" + \
    "Host: echo.websocket.org\r\n" + \
    "Origin: http://www.websocket.org\r\n" + \
    "Sec-WebSocket-Key: i9ri`AfOgSsKwUlmLjIkGA==\r\n" + \
    "Sec-WebSocket-Version: 13\r\n" + \
    "Sec-WebSocket-Protocol: chat\r\n" 


print("HSHAKE_RESP: ", HSHAKE_RESP)

print("data: ", data)

headers = {}
lines = data.splitlines()

for l in lines:
    parts = l.split(": ", 1)
    if len(parts) == 2:
        headers[parts[0]] = parts[1]
headers['code'] = lines[len(lines) - 1]
key = headers['Sec-WebSocket-Key']

print("key: ", key)

combi = key + MAGIC;

combi_b = combi.encode('UTF-8')

print("combi: ", combi)

#print("combi_b: ", combi_b)

resp_data = HSHAKE_RESP % ((base64.b64encode(hashlib.sha1(combi_b).digest()),))

print("resp_data: ", resp_data)
Leider bekomme ich nicht den gleichen Accept Schlüssel zum zurückschicken raus wie im Beispiel auf der Seite...
Die schicken den Key: i9ri`AfOgSsKwUlmLjIkGA== an das Serverscript und bekommen dann, wenn sie es mit dem "special globally unique identifier (GUID) string 258EAFA5-E914-47DA-95CA-C5AB0DC85B11" bearbeitet haben das raus: Qz9Mp4/YtIjPccdpbvFEm17G8bs=

Ich bekomme aber das raus: ti16O6oiN0nzWbVtqq9omKeAd/Y=

warum ? Kann mir einer helfen ? Ich habe ja schließlich nichts groß verändert, sondern den Code fast von da ganz unten übernommen : http://stackoverflow.com/questions/1...ing-to-python#