Revision 401d38c4416b23b5902b065b948ca40b8d0366e0 (click the page title to view the current version)

Behavioral/WebSocketProtocol

Simplified Web Socket Protocol

enum Request = open | close
abstract WebSocket
xor request -> Request ?
success
failure
xor states
initial ready
[ initially no request ]
opened
[ initially no request ]
closed --> closed
[ no request ]
failed --> failed
[ no request ]

Example scenarios

Web socket successfully opened and closed

webSocketOpenedClosed : WebSocket

Trace 1

WebSocket11
states
ready
WebSocket12
request -> open
success
states
ready
WebSocket13
states
opened
WebSocket14
request -> close
success
states
opened
WebSocket15
states
closed
WebSocket16
states
closed

Web socket successfully opened but failed to be closed

webSocketOpenedFailed : WebSocket

Trace 2

WebSocket21
states
ready
WebSocket22
request -> open
success
states
ready
WebSocket23
states
opened
WebSocket24
request -> close
failure
states
opened
WebSocket25
states
failed
WebSocket26
states
failed

Web socket failed to be opened

webSocketFailed : WebSocket
[ ready --> request = open && request.failure --> failed --> failed ]

Trace 3

WebSocket31
states
ready
WebSocket32
request -> open
failure
states
ready
WebSocket33
states
failed
WebSocket34
states
failed