1 from mod_pywebsocket
import msgutil
2 from mod_pywebsocket
.util
import DeflateSocket
3 import re
, socket
, select
6 SERVER_NAME
= socket
.getfqdn() or 'localhost'
8 'init', 'startgame', 'move', 'feedback', 'setoption', 'getmove', 'forcemove', 'stop', 'endgame', 'quit',
9 'connect', 'bestmove', 'error', 'concede', 'info',
20 def web_socket_do_extra_handshake(request
):
23 def web_socket_transfer_data(request
):
24 cmd
= msgutil
.receive_message(request
)
29 server
= socket
.socket(socket
.AF_INET
, socket
.SOCK_STREAM
)
30 server
.bind((SERVER_NAME
, 0))
32 port
= server
.getsockname()[1]
34 msgutil
.send_message(request
, '_INIT_OK %s:%d' % (SERVER_NAME
, port
))
35 browser
= request
._request
_handler
.connection
36 inn
= [server
, browser
]
41 rdy
, _
, _
= select
.select(inn
, [], [])
43 if n
is browser
: # websocket
44 cmd
= msgutil
.receive_message(request
)
45 if cmd
is None: #close
52 cmd
[0] = clean(cmd
[0])
53 if cmd
[0] in ALLOWED_CMDS
and client
is not None:
54 client
.msg(rejoin(cmd
))
55 elif n
is server
: # new connection
57 if client
: # only one client at a time
58 print "SERVER REJECTED (ALREADY CONNECTED)"
61 print "SERVER CONNECTED"
64 msgutil
.send_message(request
, '_SER_CON')
69 cmd
[0] = clean(cmd
[0])
70 if cmd
[0] in ALLOWED_CMDS
:
71 msgutil
.send_message(request
, rejoin(cmd
))
73 print "SERVER DISCONNECTED"
77 msgutil
.send_message(request
, '_SER_DIS')