fix: 首次握手失败停止重连并修正 Java 限速在途计数
This commit is contained in:
@@ -30,11 +30,42 @@ class K00Tests(unittest.TestCase):
|
||||
with self.assertRaises(NixMsgError) as cm:
|
||||
c.connect("ws://example.test/mqtt", "ep1", password="p", wait=True)
|
||||
self.assertEqual(cm.exception.code, "not_connected")
|
||||
n = len(tr.connects)
|
||||
time.sleep(0.35)
|
||||
self.assertEqual(len(tr.connects), n, "首次失败后不得自动重连")
|
||||
tr.auto_accept = True
|
||||
c.connect("ws://example.test/mqtt", "ep1", password="p", wait=True)
|
||||
self.assertEqual(c.state, ConnectionState.ONLINE)
|
||||
c.close()
|
||||
|
||||
def test_k00_first_hello_fail_stops_reconnect(self) -> None:
|
||||
"""MQTT 已通但 hello 失败:connect 返回未连接,且后台不再连。"""
|
||||
tr = FakeTransport()
|
||||
tr.auto_hello = None
|
||||
c = Client(transport=tr, connect_timeout_s=0.2)
|
||||
with self.assertRaises(NixMsgError) as cm:
|
||||
c.connect("ws://example.test/mqtt", "ep1", password="p", wait=True)
|
||||
self.assertEqual(cm.exception.code, "not_connected")
|
||||
n = len(tr.connects)
|
||||
self.assertGreaterEqual(n, 1)
|
||||
time.sleep(0.45)
|
||||
self.assertEqual(len(tr.connects), n, "hello 失败后不得自动重连")
|
||||
tr.auto_hello = {
|
||||
"server_time_ms": 1_750_000_000_000,
|
||||
"server_version": "0.1.0",
|
||||
"max_body_bytes": 262144,
|
||||
"max_meta_bytes": 4096,
|
||||
"max_frame_bytes": 786432,
|
||||
"max_ttl_seconds": 2592000,
|
||||
"max_schedule_seconds": 31536000,
|
||||
"ack_timeout_seconds": 300,
|
||||
"session_token": "nst_retry",
|
||||
}
|
||||
c.connect("ws://example.test/mqtt", "ep1", password="p", wait=True)
|
||||
self.assertEqual(c.state, ConnectionState.ONLINE)
|
||||
self.assertGreater(len(tr.connects), n)
|
||||
c.close()
|
||||
|
||||
def test_k00_taken_over_reason(self) -> None:
|
||||
c, tr = self._connect()
|
||||
got = []
|
||||
|
||||
Reference in New Issue
Block a user