2: De vier hooks

Phlo Realtime roept een van de vier functies in je app aan voor elk socket levenscyclus evenement. Je implementeert alleen de functies die je nodig hebt.

2.1: De levenscyclus

Haak Wordt aangeroepen wanneer Opmerkingen
wsAuth bij de handshake, voordat de socket wordt geaccepteerd valideer de token; geef een foutmelding om te weigeren
wsConnect direct nadat de socket is geaccepteerd opzetten; uitzenden via wsCast
wsReceive de client stuurt een bericht niets; handelen via wsCast
wsClose een socket sluit niets

2.2: De ws-geprefixeerde argumenten

Elke hook ontvangt connectiecontext onder ws-geprefixeerde namen, zodat ze nooit in conflict komen met je eigen payload-sleutels:

function wsConnect($wsHost, $wsToken, $wsSocket){
	type_presence::create(socket: $wsSocket, since: time())
	return true
}

function wsAuth(...$args) => true

function wsReceive($wsHost, $wsToken, $wsSocket, ...$data){
	if (($data['type'] ?? null) === 'ping') wsCast(wsTarget: 'socket:'.$wsSocket, toast: 'pong')
}

function wsClose($wsHost, $wsToken, $wsSocket){
	type_presence::delete('socket=?', $wsSocket)
}

2.3: De status bevindt zich in de database.

Omdat handlers kortlevend zijn, moet alles wat je wilt onthouden tussen evenementen (wie online is, de laatste bericht-id) in een model worden geplaatst, net als de rest van je app. De demo houdt een presence-tabel en een wslog-tabel bij en leest deze bij elk evenement.

We gebruiken essentiële cookies om deze site te laten werken. Met uw toestemming gebruiken we ook analytics om de site te verbeteren.