Skip to content

Master Akış ve Algoritmalar

Bu sayfa Micro Socket yaşam döngüsünün master akış şemasını ve alt algoritmalara linkleri içerir.


Master Algoritma Akış Şeması

Aşağıdaki diyagram, bir mesajın yayından istemciye teslimine kadar tüm katmanlarda izlediği yolu gösterir.


Alt Algoritmalar

AlgoritmaAçıklamaDetay sayfası
Dedup / İdempotencymessageId ile çift işlemeyi engellemeDedup & İdempotency
ACLSUBSCRIBE/PUBLISH yetki kontrolüACL & Yetkilendirme
Sıralama (SeqNo)Mesaj sırası ve gap/replaySıralama & SeqNo
ResumeKesinti sonrası session ve replayResume & Replay

Pseudocode: Gateway Ana Döngü (Özet)

FUNCTION handleMessage(ws, raw):
  msg = JSON.parse(raw)
  user = getUserId(ws.token)

  IF msg.type == "subscribe":
    IF NOT aclAllow(user, msg.topic, "read") THEN sendError(ws, "ACL_DENIED"); RETURN
    addSubSocket(ws, msg.topic)
    RETURN

  IF msg.type == "publish":
    IF NOT aclAllow(user, msg.topic, "write") THEN sendError(ws, "ACL_DENIED"); RETURN
    IF dedupContains(user.id, msg.messageId) THEN sendAck(ws, msg.messageId, "duplicate"); RETURN
    dedupAdd(user.id, msg.messageId)
    seqNo = nextSeq(msg.topic)
    publishToBackbone(msg.topic, { ...msg.payload, seqNo })
    sendAck(ws, msg.messageId, "ok")
    RETURN

  IF msg.type == "resume":
    session = getSession(msg.sessionId)
    IF NOT session THEN sendError(ws, "SESSION_EXPIRED"); RETURN
    replayGap(session, msg.lastSeqPerTopic, ws)
    RETURN

Node.js ile tam uygulama: Gateway (Genel), Gateway ACL + Dedup.

Star the repo on GitHub if this documentation is useful — link in the navbar above.