Simplified Web Socket
Protocol
enum Request = open | close
abstract WebSocket
xor request -> Request ?
success
failure
xor states
initial ready
[ initially no request ]
[ request=open -[request.success]-> opened ]
[ request=open -[request.failure]-> failed ]
opened
[ initially no request ]
[ request=close -[request.success]-> closed ]
[ request=close -[request.failure]-> failed ]
closed --> closed
[ no request ]
failed --> failed
[ no request ]
Example scenarios
- Web socket successfully opened and closed
webSocketOpenedClosed : WebSocket
[ ready --> request=open && request.success --> opened -->> request=close && request.success --> closed --> closed ]
|
|
WebSocket2
request->open
success
states
ready
|
|
WebSocket4
request->close
success
states
opened
|
|
|
- Web socket successfully opened but failed to be closed
webSocketOpenedFailed : WebSocket
[ ready --> request=open && request.success --> opened -->> request=close && request.failure --> failed --> failed ]
<<<<<<< edited
WebSocket7
=======
WebSocket6
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
states
ready
|
<<<<<<< edited
WebSocket8
=======
WebSocket7
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
request->open
success
states
ready
|
<<<<<<< edited
WebSocket9
=======
WebSocket8
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
states
opened
|
<<<<<<< edited
WebSocket10
=======
WebSocket9
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
request->close
failed
states
opened
|
<<<<<<< edited
WebSocket11
=======
WebSocket10
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
states
failed
|
<<<<<<< edited
WebSocket12
=======
WebSocket11
>>>>>>> ec5473b372ac1209325b03fa234f1fe6f0e7b2fa
states
failed
|
- Web socket failed to be opened
webSocketFailed : WebSocket
[ ready --> request=open && request.failure --> failed --> failed ]
|
|WebSocket
|
|WebSocket
|
|WebSocket
|
|WebSocket
|
|
|
|
| request->open
|
|
|
|
|
|
|
|
| failure
|
|
|
|
|
|
| ready
|
| ready
|
| failed
|
| failed
|