novastone-media / MQTT-Client-Framework

iOS, macOS, tvOS native ObjectiveC MQTT Client Framework
Other
1.84k stars 459 forks source link

can't receive message #604

Closed zqeq closed 2 years ago

zqeq commented 2 years ago

我的部分iOS手机用户链接状态正常接受不到订阅消息,服务端用的emq,大部分用户都能正常接收。 客户端链接代码如下: self.sessionManage = [[MQTTSessionManager alloc] init]; self.sessionManage.delegate = self; [self.sessionManage addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew context:nil]; self.sessionManage.subscriptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:MQTTQosLevelExactlyOnce] forKey:mqClientInfo[@"pushChannelId"]]; [self.sessionManage connectTo:kYXMQTTUrl port:kYXMQTTPORT tls:NO keepalive:60 clean:false auth:true user:@"admin" pass:@"public" will:NO willTopic:nil willMsg:nil willQos:MQTTQosLevelExactlyOnce willRetainFlag:false withClientId:mqClientInfo[@"pushClientId"] securityPolicy:nil certificates:nil protocolLevel:4 connectHandler:^(NSError *error) { }]; 从服务端观察,接收不了消息的用户,inflight window size 已经满了,并且该队列的消息在和客户端链接成功后也不会消耗。

petersom commented 2 years ago

请问这个问题最终怎么解决的? 我们也有遇到

zqeq commented 2 years ago

这个问题我们也没有解决,暂时出的临时方案出现收不到消息时候clean设置yes链接一下清空飞行队列然后断开,clean设置FALSE正常链接。目前已经在测试环境调飞行队列最大值为2很容易复现,准备更最新版的emq调试下。有进展了再沟通。

---Original--- From: @.> Date: Thu, Feb 17, 2022 14:20 PM To: @.>; Cc: @.>;"State @.>; Subject: Re: [novastone-media/MQTT-Client-Framework] can't receive message(Issue #604)

请问这个问题最终怎么解决的? 我们也有遇到

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you modified the open/close state.Message ID: @.***>

petersom commented 2 years ago

我们决定放弃这个库了,没人维护 用emq 的CocoaMQTT 测试过这种情况正常,这是swift的 只是要做桥接麻烦点