Skip to content

Instantly share code, notes, and snippets.

@JerzySpendel
Created August 1, 2016 13:08
Show Gist options
  • Save JerzySpendel/7773810e6372132193a157e4608bdafb to your computer and use it in GitHub Desktop.
Save JerzySpendel/7773810e6372132193a157e4608bdafb to your computer and use it in GitHub Desktop.
1. Zaraz po podłączeniu się do serwera przez jakieś:
var socket = io.connect(url);
należy wyemitować zdarzenie "hello" i przesłać obiekt o strukturze:
{token: <token>}. Po tym zdarzeniu serwer wyemituje zdarzenie "helloResponse" i jeśli bedzie ok to w odpowiedzi będzie struktura {status: "success"}, a jeśli nie to {status: "failed", message: "Invalid token"} (nie uda się tylko jeśli token będzie zły).
Dopiero po przywitaniu można odbierać wiadomości i je wysyłać, a zapewnić sobie przywitanie możnaby w promisie, jakoś tak:
var greeted = new Promise( (resolve, reject) => {
io.on('helloResponse', data => {
resolve(data);
// możnaby jeszcze spróbować wykorzystać reject
});
io.emit('hello', {token: token});
});
tak jakoś Andrzej proponował i tak mam też w testach.
2. Wysyłanie i odbieranie wiadomości.
Wiadomość do użytkownika jest wysyłana najpierw do serwera przez:
socket.emit('sendMessage', {userId: <id do kogo chcemy wysłać>, mesage: <string z wiadomoscia tutaj>});
Jak serwer otrzyma zdarzenei to prześle wiadomość do odpowiedniego usera i wyemituje zdarzenie "sendMessageResponse" do wysyłającego, żeby wysyłający mogł sprawdzić czy wszystko ok, sendMessageResponse ma strukturę: {status: <status>, message: <komunikat>, data: <dodatkowe info>}
Wiadomości są odbierane przy wykrywaniu zdarzenia "message" i mają strukturę {from: <id od kogo>, to: <id do kogo>, data: <tresc>}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment