MQTT reason code sorgulama

0x87, 135 ya da “Connection refused: not authorized” mı aldınız? Ne anlama geldiğini ve nasıl düzeltileceğini görmek için tüm MQTT 5 reason code’larında ve MQTT 3.1.1 return code’larında arama yapın.

En yaygın bağlantı hataları — tüm kodları görmek için arama yapın
  • 0x86Bad User Name or Password · Hatalı kullanıcı adı veya şifreondalık 134 · MQTT 5
    CONNACK

    Sunucu kullanıcı adını veya şifreyi reddetti.

    Nasıl düzeltilir: Kimlik bilgilerini tekrar kontrol edin (sondaki boşluklara ve büyük/küçük harfe dikkat edin) ve kullanıcının broker şifre dosyasında veya kimlik doğrulama backend’inde bulunduğunu doğrulayın.

    İpucu: Broker’ı siz yönettiğinizde kullanıcı bazlı kimlik bilgilerini ve topic ACL’lerini doğru kurmak çok daha kolaydır — ConnectMQ ikisini de tek bir panelden yönetmenizi sağlar.

  • 0x87Not authorized · Yetkisizondalık 135 · MQTT 5
    CONNACKPUBACKPUBRECSUBACKUNSUBACKDISCONNECT

    Client’ın bu işlemi yapmasına izin verilmiyor — bağlanmak, o topic’e publish etmek ya da o filter’a abone olmak.

    Nasıl düzeltilir: Bu kullanıcı ve topic için broker ACL’ini kontrol edin. CONNACK’te genellikle anonim erişimin kapalı olduğu ve kimlik bilgisi gönderilmediği anlamına gelir.

    İpucu: Broker’ı siz yönettiğinizde kullanıcı bazlı kimlik bilgilerini ve topic ACL’lerini doğru kurmak çok daha kolaydır — ConnectMQ ikisini de tek bir panelden yönetmenizi sağlar.

  • 0x85Client Identifier not valid · Client ID geçersizondalık 133 · MQTT 5
    CONNACK

    Client ID biçim olarak doğru, ancak sunucu kabul etmiyor (çok uzun, geçersiz karakterler ya da izin verilmediği hâlde boş).

    Nasıl düzeltilir: Kısa, alfanümerik bir client ID kullanın (en fazla 23 karakter her zaman güvenlidir) ya da boş ID ve clean start ile broker’ın bir ID atamasına izin verin.

  • 0x8ESession taken over · Oturum devralındıondalık 142 · MQTT 5
    DISCONNECT

    Aynı client ID ile başka bir bağlantı kuruldu, bu yüzden bu bağlantı düşürüldü.

    Nasıl düzeltilir: Her cihaza ve her tarayıcı sekmesine benzersiz bir client ID verin. Aynı ID’yi paylaşan iki client, döngü hâlinde birbirinin bağlantısını keser.

  • 0x8DKeep Alive timeout · Keep alive zaman aşımıondalık 141 · MQTT 5
    DISCONNECT

    Keep Alive aralığının 1,5 katı süre içinde hiçbir paket alınmadığı için bağlantı kapatıldı.

    Nasıl düzeltilir: Client döngünüzün çalıştığından (PINGREQ gönderildiğinden) emin olun, ağ thread’ini bloklamaktan kaçının ya da keep alive aralığını artırın.

  • 0x80Unspecified error · Belirtilmemiş hataondalık 128 · MQTT 5
    CONNACKPUBACKPUBRECSUBACKUNSUBACKDISCONNECT

    Bir şey başarısız oldu ve sunucu nedenini söylemek istemiyor (ya da söyleyemiyor).

    Nasıl düzeltilir: Broker log’larını kontrol edin — genellikle asıl nedeni içerirler. Gönderildiyse Reason String property’sine de bakın.

  • 0x97Quota exceeded · Kota aşıldıondalık 151 · MQTT 5
    CONNACKPUBACKPUBRECSUBACKDISCONNECT

    Uygulamaya özgü veya idari bir kota aşıldı (mesajlar, bağlantılar, depolama, …).

    Nasıl düzeltilir: Planınızı veya broker kotalarını kontrol edin, mesaj hacmini azaltın ya da operatörden limiti artırmasını isteyin.

    İpucu: Broker’ı siz yönettiğinizde kullanıcı bazlı kimlik bilgilerini ve topic ACL’lerini doğru kurmak çok daha kolaydır — ConnectMQ ikisini de tek bir panelden yönetmenizi sağlar.

  • 5Connection Refused, not authorized · Bağlantı reddedildi, yetkisizMQTT 3.1.1 · CONNACK return code
    CONNACK

    Client’ın bağlanma yetkisi yok.

    Nasıl düzeltilir: Anonim erişim kapalıysa kimlik bilgilerini gönderin ve bu kullanıcı için broker ACL’ini kontrol edin.

    İpucu: Broker’ı siz yönettiğinizde kullanıcı bazlı kimlik bilgilerini ve topic ACL’lerini doğru kurmak çok daha kolaydır — ConnectMQ ikisini de tek bir panelden yönetmenizi sağlar.

MQTT reason code’ları nasıl çalışır?

Reason code, broker’ın (veya client’ın) bir işlemin nasıl sonuçlandığını bildirmek için geri gönderdiği tek bir byte’tır. MQTT 5’te CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK, DISCONNECT ve AUTH paketlerinde yer alır. Kural basittir: 0x80’in altındaki değerler başarı anlamına gelir (bazen 0x10 No matching subscribers gibi ek bilgiyle birlikte), 0x80 ve üzeri ise hata anlamına gelir. Aynı sayı, izin verildiği her pakette aynı anlamı taşır; yani 0x87 bağlantıda, publish’te ya da subscribe’da dönmesinden bağımsız olarak her zaman “Not authorized” demektir.

MQTT 3.1.1 çok daha az konuşkandır. Yalnızca CONNACK bir return code (0–5) taşır; SUBACK ise yalnızca “granted QoS 0/1/2” ya da 0x80 Failure diyebilir. Reddedilen bir QoS 0 publish sessizce düşürülür ve birçok broker hata durumunda TCP bağlantısını doğrudan kapatır; bu yüzden çoğu zaman tek ipucunuz broker log’udur. Hassas hata raporlamasına ihtiyacınız varsa MQTT 5’e geçmeye değer.

Kütüphanenizin gösterdiği kodları okumak

Client kütüphaneleri kodları farklı biçimlerde yazdırır. Paho Python ondalık değerler gösterir (rc=135), MQTT.js genellikle ondalık sayıyı bir mesajla birlikte gösterir, Mosquitto’nun komut satırı araçları ise “Connection Refused: not authorised” gibi metinler yazdırır. Yukarıdaki arama kutusu bunların hepsini kabul eder: 135, 0x87, 87 ya da keep alive gibi bir ifade yazın. MQTT 5’te broker ayrıca insan tarafından okunabilir bir açıklama içeren Reason String property’sini de ekleyebilir; bunu log’layın, çünkü çoğu zaman kodun kendisinden daha açıklayıcıdır.

En sık karşılaşacağınız hatalar

  • 0x86 / return code 4 — hatalı kullanıcı adı veya şifre. Yazım hatalarını, sondaki boşlukları ve büyük/küçük harfi kontrol edin. Şifre dosyalarını kurmak için Mosquitto kimlik doğrulama rehberine bakın.
  • 0x87 / return code 5 — yetkisiz. Kimlik bilgileri doğru olabilir, ancak ACL topic’i engelliyordur ya da broker anonim client’ları reddediyordur.
  • 0x8E — session taken over. İki client aynı client ID’yi kullanıyor. Client ID oluşturucu ile benzersiz ID’ler üretin.
  • 0x8D — keep alive zaman aşımı. Client paket göndermeyi bıraktı. MQTT keep alive’ın nasıl çalıştığını okuyun.
  • 0x95 — paket çok büyük. Mesaj boyutunuzu paket boyutu hesaplayıcı ile kontrol edin.

Birçok bağlantı sorunu reason code aşamasına hiç ulaşmaz — DNS hataları, yanlış portlar ve TLS handshake hataları MQTT başlamadan önce gerçekleşir. Bunlar için yaygın MQTT bağlantı hatalarına ve MQTT portları referansına bakın ya da sorunu, CONNACK sonucunu log’unda gösteren online MQTT client ile yeniden üretin.

Tüm MQTT 5 reason code’ları

OASIS MQTT 5.0 spesifikasyonunun 2.4. bölümünde tanımlanan tüm reason code’lar. Bir koda #0x87 ile link verebilirsiniz.

MQTT 5.0 reason code’ları
KodAdPaketlerAnlamı ve çözümü
0x00
ondalık 0
Success
Başarılı
CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK, AUTHİşlem başarıyla tamamlandı.
Çözüm: Düzeltilecek bir şey yok — bu normal sonuçtur.
0x00
ondalık 0
Normal disconnection
Normal bağlantı kesme
DISCONNECTBağlantı bilerek kapatıldı ve Will Message gönderilmez.
Çözüm: Düzeltilecek bir şey yok. Bağlantının kesilmesini beklemiyorsanız hangi tarafın gönderdiğini ve nedenini kontrol edin.
0x00
ondalık 0
Granted QoS 0
QoS 0 verildi
SUBACKAbonelik, en fazla QoS 0 ile kabul edildi.
Çözüm: QoS 1 veya 2 istediyseniz broker seviyenizi düşürmüştür — broker’ın maksimum QoS ayarını kontrol edin.
0x01
ondalık 1
Granted QoS 1
QoS 1 verildi
SUBACKAbonelik, en fazla QoS 1 ile kabul edildi.
Çözüm: QoS 2 istediyseniz broker QoS’u 1 ile sınırlıyor — sisteminizi en az bir kez (at-least-once) teslimata göre tasarlayın (idempotent handler’lar).
0x02
ondalık 2
Granted QoS 2
QoS 2 verildi
SUBACKAbonelik, en fazla QoS 2 ile kabul edildi.
Çözüm: Düzeltilecek bir şey yok — istediğiniz gibi tam olarak bir kez (exactly-once) teslimat elde ettiniz.
0x04
ondalık 4
Disconnect with Will Message
Will Message ile bağlantı kesme
DISCONNECTClient bağlantıyı kesmek istiyor ancak sunucudan yine de Will Message’ını yayınlamasını istiyor.
Çözüm: Düzeltilecek bir şey yok — bu, client’ın bilinçli bir tercihidir.
0x10
ondalık 16
No matching subscribers
Eşleşen abone yok
PUBACK, PUBRECMesaj kabul edildi, ancak şu anda bu topic’e abone olan kimse yok.
Çözüm: Bu bir hata değil. Abonenin bağlı olduğunu ve topic filter’ının topic ile birebir eşleştiğini (büyük/küçük harfe duyarlı) kontrol edin.
0x11
ondalık 17
No subscription existed
Abonelik mevcut değildi
UNSUBACKClient, abone olmadığı bir topic filter’ından aboneliği kaldırmaya çalıştı.
Çözüm: Unsubscribe filter’ının, abone olurken kullandığınız filter ile byte byte aynı olduğundan emin olun.
0x18
ondalık 24
Continue authentication
Kimlik doğrulamaya devam
AUTHGelişmiş kimlik doğrulama sürüyor ve bir AUTH adımı daha gerekiyor.
Çözüm: Client’ınız, kimlik doğrulama yönteminin bir sonraki adımını içeren bir AUTH paketiyle yanıt vermelidir.
0x19
ondalık 25
Re-authenticate
Yeniden kimlik doğrulama
AUTHClient, mevcut bir bağlantıda gelişmiş kimlik doğrulamanın yeniden yapılmasını istiyor.
Çözüm: Düzeltilecek bir şey yok — süresi dolan token’lar gibi kimlik bilgilerini yenilemek için kullanılır.
0x80
ondalık 128
Unspecified error
Belirtilmemiş hata
CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECTBir şey başarısız oldu ve sunucu nedenini söylemek istemiyor (ya da söyleyemiyor).
Çözüm: Broker log’larını kontrol edin — genellikle asıl nedeni içerirler. Gönderildiyse Reason String property’sine de bakın.
0x81
ondalık 129
Malformed Packet
Hatalı biçimlendirilmiş paket
CONNACK, DISCONNECTAlınan paket MQTT spesifikasyonuna uymuyor ve ayrıştırılamadı.
Çözüm: Client kütüphanenizi güncelleyin, protokol sürümünün eşleştiğinden emin olun ve MQTT olmayan bir porta MQTT (veya TLS portuna düz TCP) konuşmadığınızı kontrol edin.
0x82
ondalık 130
Protocol Error
Protokol hatası
CONNACK, DISCONNECTPaket doğru ayrıştırıldı ancak bir protokol kuralını ihlal etti; örneğin ikinci bir CONNECT ya da tekrarlanan bir property.
Çözüm: Genellikle client kütüphanesindeki bir hatadan veya özel paket kodundan kaynaklanır. Kütüphaneyi güncelleyin ve paketleri sıra dışı göndermekten kaçının.
0x83
ondalık 131
Implementation specific error
Uygulamaya özgü hata
CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECTPaket geçerli, ancak sunucu broker’a özgü bir nedenle reddediyor.
Çözüm: Reason String’i ve broker dokümantasyonunu/log’larını okuyun — neden broker’a göre değişir (eklentiler, limitler, politikalar).
0x84
ondalık 132
Unsupported Protocol Version
Desteklenmeyen protokol sürümü
CONNACKSunucu, client’ın talep ettiği MQTT protokol sürümünü desteklemiyor.
Çözüm: Client’ı MQTT 3.1.1’e (protocol level 4) geçirin ya da broker’ı MQTT 5 destekleyen bir sürüme yükseltin.
0x85
ondalık 133
Client Identifier not valid
Client ID geçersiz
CONNACKClient ID biçim olarak doğru, ancak sunucu kabul etmiyor (çok uzun, geçersiz karakterler ya da izin verilmediği hâlde boş).
Çözüm: Kısa, alfanümerik bir client ID kullanın (en fazla 23 karakter her zaman güvenlidir) ya da boş ID ve clean start ile broker’ın bir ID atamasına izin verin.
0x86
ondalık 134
Bad User Name or Password
Hatalı kullanıcı adı veya şifre
CONNACKSunucu kullanıcı adını veya şifreyi reddetti.
Çözüm: Kimlik bilgilerini tekrar kontrol edin (sondaki boşluklara ve büyük/küçük harfe dikkat edin) ve kullanıcının broker şifre dosyasında veya kimlik doğrulama backend’inde bulunduğunu doğrulayın.
0x87
ondalık 135
Not authorized
Yetkisiz
CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECTClient’ın bu işlemi yapmasına izin verilmiyor — bağlanmak, o topic’e publish etmek ya da o filter’a abone olmak.
Çözüm: Bu kullanıcı ve topic için broker ACL’ini kontrol edin. CONNACK’te genellikle anonim erişimin kapalı olduğu ve kimlik bilgisi gönderilmediği anlamına gelir.
0x88
ondalık 136
Server unavailable
Sunucu kullanılamıyor
CONNACKMQTT sunucusu şu anda kullanılamıyor.
Çözüm: Üstel geri çekilme (exponential backoff) ile yeniden deneyin. Sorun sürerse broker sağlığını, cluster durumunu ve bakım pencerelerini kontrol edin.
0x89
ondalık 137
Server busy
Sunucu meşgul
CONNACK, DISCONNECTSunucu aşırı yüklü ve işlemi reddediyor; daha sonra tekrar deneyin.
Çözüm: Binlerce cihazın aynı anda yeniden bağlanmaması için geri çekilin ve jitter ile yeniden deneyin.
0x8A
ondalık 138
Banned
Yasaklandı
CONNACKBu client, yönetici işlemiyle yasaklandı.
Çözüm: Broker operatörüyle iletişime geçin. Tekrarlanan başarısız girişler veya kötüye kullanım niteliğindeki trafik, yasaklamaların yaygın nedenleridir.
0x8B
ondalık 139
Server shutting down
Sunucu kapanıyor
DISCONNECTSunucu kapatılıyor.
Çözüm: Backoff ile yeniden bağlanın; aboneliklerin ve kuyruktaki QoS 1/2 mesajların korunması için kalıcı oturum (persistent session) kullanın.
0x8C
ondalık 140
Bad authentication method
Hatalı kimlik doğrulama yöntemi
CONNACK, DISCONNECTCONNECT’teki kimlik doğrulama yöntemi desteklenmiyor veya kullanılan yöntemle eşleşmiyor.
Çözüm: Authentication Method property’sini kaldırın ya da broker’ın desteklediği bir yönteme ayarlayın (örn. SCRAM-SHA-256).
0x8D
ondalık 141
Keep Alive timeout
Keep alive zaman aşımı
DISCONNECTKeep Alive aralığının 1,5 katı süre içinde hiçbir paket alınmadığı için bağlantı kapatıldı.
Çözüm: Client döngünüzün çalıştığından (PINGREQ gönderildiğinden) emin olun, ağ thread’ini bloklamaktan kaçının ya da keep alive aralığını artırın.
0x8E
ondalık 142
Session taken over
Oturum devralındı
DISCONNECTAynı client ID ile başka bir bağlantı kuruldu, bu yüzden bu bağlantı düşürüldü.
Çözüm: Her cihaza ve her tarayıcı sekmesine benzersiz bir client ID verin. Aynı ID’yi paylaşan iki client, döngü hâlinde birbirinin bağlantısını keser.
0x8F
ondalık 143
Topic Filter invalid
Topic filter geçersiz
SUBACK, UNSUBACK, DISCONNECTTopic filter biçim olarak doğru, ancak bu sunucu tarafından kabul edilmiyor.
Çözüm: Wildcard konumlarını kontrol edin (+ bir seviyenin tamamını kaplamalı, # en sonda olmalı) ve broker’ın topic derinliği veya uzunluğu limitlerine bakın.
0x90
ondalık 144
Topic Name invalid
Topic adı geçersiz
CONNACK, PUBACK, PUBREC, DISCONNECTTopic adı biçim olarak doğru, ancak client veya sunucu tarafından kabul edilmiyor.
Çözüm: Asla + veya # içeren bir topic’e publish etmeyin, boş topic’lerden kaçının ve broker’ın topic uzunluğu/derinliği limitlerini kontrol edin.
0x91
ondalık 145
Packet Identifier in use
Paket tanımlayıcısı kullanımda
PUBACK, PUBREC, SUBACK, UNSUBACKPaket tanımlayıcısı, devam eden başka bir alışveriş için zaten kullanılıyor.
Çözüm: Genellikle bir client kütüphanesi hatası veya tutarsız geri yüklenmiş bir oturumdan kaynaklanır. Kütüphaneyi güncelleyin ya da temiz bir oturum (clean session) başlatın.
0x92
ondalık 146
Packet Identifier not found
Paket tanımlayıcısı bulunamadı
PUBREL, PUBCOMPPaket tanımlayıcısı bilinmiyor — QoS 2 akış durumu kaybolmuş.
Çözüm: Oturum durumu kaybolduktan sonra olur (örn. clean start ya da persistence olmadan broker yeniden başlatma). Broker’da persistence’ı etkinleştirin.
0x93
ondalık 147
Receive Maximum exceeded
Receive Maximum aşıldı
DISCONNECTAlıcının izin verdiğinden daha fazla onaylanmamış QoS 1/2 PUBLISH paketi gönderildi.
Çözüm: CONNACK/CONNECT’teki Receive Maximum değerine uyun; client ayarlarınızda havadaki (in-flight) mesaj sayısını sınırlayın.
0x94
ondalık 148
Topic Alias invalid
Topic Alias geçersiz
DISCONNECTBir topic alias 0’dı, Topic Alias Maximum’dan büyüktü ya da tanımlanmadan önce kullanıldı.
Çözüm: Karşı tarafın bildirdiği Topic Alias Maximum değerine uyun ya da topic alias’ları devre dışı bırakın.
0x95
ondalık 149
Packet too large
Paket çok büyük
CONNACK, DISCONNECTPaket, alıcının izin verdiği maksimum paket boyutunu aşıyor.
Çözüm: Payload’ı küçültün (sıkıştırın, bölün ya da bir referans gönderin) veya broker’ın mesaj boyutu limitini artırın.
0x96
ondalık 150
Message rate too high
Mesaj hızı çok yüksek
DISCONNECTClient, sunucunun izin verdiğinden daha hızlı publish ediyor.
Çözüm: Publish’leri yavaşlatın, ölçümleri daha az mesajda toplayın ya da broker’daki hız limitini artırın.
0x97
ondalık 151
Quota exceeded
Kota aşıldı
CONNACK, PUBACK, PUBREC, SUBACK, DISCONNECTUygulamaya özgü veya idari bir kota aşıldı (mesajlar, bağlantılar, depolama, …).
Çözüm: Planınızı veya broker kotalarını kontrol edin, mesaj hacmini azaltın ya da operatörden limiti artırmasını isteyin.
0x98
ondalık 152
Administrative action
Yönetici işlemi
DISCONNECTBağlantı bir yönetici tarafından kapatıldı.
Çözüm: Broker operatörüyle iletişime geçin — biri bu client’ı elle ya da bir yönetim API’si üzerinden düşürdü.
0x99
ondalık 153
Payload format invalid
Payload formatı geçersiz
CONNACK, PUBACK, PUBREC, DISCONNECTPayload, Payload Format Indicator ile uyuşmuyor (örn. UTF-8 olarak işaretlenmiş ama geçerli UTF-8 değil).
Çözüm: Payload Format Indicator = 1 değerini yalnızca payload geçerli UTF-8 metin olduğunda ayarlayın; binary verileri bu işaret olmadan gönderin.
0x9A
ondalık 154
Retain not supported
Retain desteklenmiyor
CONNACK, DISCONNECTSunucu retained mesajları desteklemiyor, ancak client bir tane gönderdi.
Çözüm: Publish’lerde ve Will Message’ta retain bayrağını kaldırın ya da retain destekleyen bir broker kullanın.
0x9B
ondalık 155
QoS not supported
QoS desteklenmiyor
CONNACK, DISCONNECTClient, sunucunun CONNACK’te bildirdiği Maximum QoS’tan daha yüksek bir QoS kullandı.
Çözüm: CONNACK’teki Maximum QoS değerini okuyun ve publish’leri (ve Will QoS’u) bu değerde ya da altında yapın.
0x9C
ondalık 156
Use another server
Başka bir sunucu kullanın
CONNACK, DISCONNECTClient geçici olarak başka bir sunucu kullanmalıdır.
Çözüm: Server Reference property’sini okuyun ve oraya bağlanın; cluster’lar çalıştırıyorsanız client’ınızda yönlendirmeyi destekleyin.
0x9D
ondalık 157
Server moved
Sunucu taşındı
CONNACK, DISCONNECTSunucu kalıcı olarak taşındı; client başka bir sunucu kullanmalıdır.
Çözüm: Server Reference property’sini kullanarak yapılandırmanızdaki broker hostname’ini güncelleyin.
0x9E
ondalık 158
Shared Subscriptions not supported
Paylaşımlı abonelikler desteklenmiyor
SUBACK, DISCONNECTSunucu $share/… paylaşımlı aboneliklerini desteklemiyor.
Çözüm: Normal abonelikler kullanın ya da yük dengeli tüketiciler için paylaşımlı abonelik destekleyen bir broker tercih edin.
0x9F
ondalık 159
Connection rate exceeded
Bağlantı hızı aşıldı
CONNACK, DISCONNECTClient çok sık bağlanıyor; bağlantı hızı limitine ulaşıldı.
Çözüm: Yeniden bağlanmalara jitter’lı üstel backoff ekleyin ve bir yeniden bağlanma döngüsü olup olmadığına bakın (çoğunlukla tekrarlanan client ID’lerden kaynaklanır).
0xA0
ondalık 160
Maximum connect time
Maksimum bağlantı süresi
DISCONNECTBu client için izin verilen maksimum bağlantı süresine ulaşıldı.
Çözüm: Yeniden bağlanın; kısa yeniden bağlanma sırasında hiçbir şey kaybolmaması için kalıcı oturum kullanmayı düşünün.
0xA1
ondalık 161
Subscription Identifiers not supported
Subscription Identifier desteklenmiyor
SUBACK, DISCONNECTSunucu Subscription Identifier property’sini desteklemiyor.
Çözüm: SUBSCRIBE’dan Subscription Identifier’ı kaldırın ve mesajları bunun yerine topic’e göre yönlendirin.
0xA2
ondalık 162
Wildcard Subscriptions not supported
Wildcard abonelikleri desteklenmiyor
SUBACK, DISCONNECTSunucu + veya # wildcard içeren abonelikleri desteklemiyor.
Çözüm: Tam topic adlarına abone olun ya da wildcard aboneliklerini destekleyen bir broker kullanın.

MQTT 3.1.1 return code’ları

MQTT 3.1.1 spesifikasyonundaki 0–5 arası CONNACK return code’ları ve SUBACK hata kodu.

MQTT 3.1.1 return code’ları
KodAdPaketlerAnlamı ve çözümü
0
ondalık 0
Connection Accepted
Bağlantı kabul edildi
CONNACKBroker bağlantıyı kabul etti.
Çözüm: Düzeltilecek bir şey yok.
1
ondalık 1
Connection Refused, unacceptable protocol version
Bağlantı reddedildi, kabul edilemeyen protokol sürümü
CONNACKBroker, client’ın talep ettiği protocol level’ı desteklemiyor.
Çözüm: Broker’la eşleşmesi için client’ı MQTT 3.1.1 (level 4) veya 3.1 (level 3) olarak ayarlayın.
2
ondalık 2
Connection Refused, identifier rejected
Bağlantı reddedildi, tanımlayıcı reddedildi
CONNACKClient ID geçerli bir UTF-8, ancak broker tarafından izin verilmiyor.
Çözüm: [0-9a-zA-Z] aralığından 1–23 karakter kullanın ya da clean session = true ile boş bir ID gönderin.
3
ondalık 3
Connection Refused, server unavailable
Bağlantı reddedildi, sunucu kullanılamıyor
CONNACKAğ bağlantısı kuruldu, ancak MQTT servisi kullanılamıyor.
Çözüm: Backoff ile yeniden deneyin ve broker sağlığını kontrol edin.
4
ondalık 4
Connection Refused, bad user name or password
Bağlantı reddedildi, hatalı kullanıcı adı veya şifre
CONNACKKullanıcı adı veya şifre hatalı ya da yanlış biçimde.
Çözüm: Kimlik bilgilerini ve kullanıcının broker’ın kimlik doğrulama backend’inde bulunduğunu doğrulayın.
5
ondalık 5
Connection Refused, not authorized
Bağlantı reddedildi, yetkisiz
CONNACKClient’ın bağlanma yetkisi yok.
Çözüm: Anonim erişim kapalıysa kimlik bilgilerini gönderin ve bu kullanıcı için broker ACL’ini kontrol edin.
0x80
ondalık 128
Failure
Başarısız
SUBACKAbonelik reddedildi — genellikle bir ACL veya geçersiz bir topic filter nedeniyle.
Çözüm: Filter söz dizimini ve kullanıcının bu filter’a abone olma izni olduğunu kontrol edin. MQTT 3.1.1 daha fazla ayrıntı vermez; broker log’una bakın.

Reason code SSS

MQTT reason code 0x87 (135) ne anlama gelir?

0x87, Not authorized (yetkisiz) demektir. CONNACK’te broker bağlantıyı reddetmiştir (çoğunlukla anonim erişim kapalı olduğu ve kimlik bilgisi gönderilmediği için). PUBACK, SUBACK veya DISCONNECT’te ise kullanıcının broker ACL’inde o topic için yetkisi olmadığı anlamına gelir.

Reason code ile return code arasındaki fark nedir?

MQTT 3.1.1’de return code’lar yalnızca CONNACK’te (0–5) ve SUBACK’te (0x00–0x02 ve 0x80) bulunur. MQTT 5 bunların yerine neredeyse her onay paketinde, DISCONNECT’te ve AUTH’ta yer alan reason code’ları getirdi; 0x80 veya üzerindeki değerler her zaman hata belirtir.

Client’ım neden sürekli 0x8E Session taken over ile bağlantıyı kaybediyor?

İki bağlantı aynı client ID’yi kullanıyor. İkincisi bağlandığında broker ilkinin bağlantısını keser. Her ikisi de otomatik olarak yeniden bağlanırsa birbirlerini döngü hâlinde düşürürler. Her cihaza ve her tarayıcı sekmesine benzersiz bir client ID verin.

MQTT 3.1.1’de neden return code 5 alıyorum?

Return code 5, Connection Refused, not authorized (bağlantı reddedildi, yetkisiz) demektir. Broker kimlik doğrulama istiyor ya da kullanıcı erişim kuralları tarafından engelleniyor. Geçerli bir kullanıcı adı ve şifre gönderin; broker ACL’ini veya allow_anonymous ayarını kontrol edin.

TestMQTT’nin yapımcılarından

Kendi broker’ınızla daha az yetkilendirme hatası

Genel test broker’ları binlerce yabancıyla paylaşılır. ConnectMQ, gerçek cihazlarınızla güvenle kullanabileceğiniz özel bir MQTT broker sunar — dakikalar içinde hazır.

  • Size özel, izole broker — topic’lerinizi başka kimse okuyamaz
  • Kullanıcı adı / şifre ile kimlik doğrulama ve topic bazlı erişim kontrolü
  • TLS ve güvenli WebSocket, MQTT 3.1.1 ve MQTT 5
  • İlk testten üretime kadar aynı istemci kodu