Open
Description
The connected
property is rather meaningless. There's no rhyme or reason to its value. Test output, and test program:
# async sleep + submit command + fetch results
# 1691326137 : main: connected
# 1691326257 : main: slept (disconnected)
# 1691326257 : main: connected: True
# 1691326257 : main: submitted status
# 1691326257 : main: connected: True
# 1691326257 : main: awaiting command result succeeded
# 1691326257 : main: connected: True
# 1691326257 : main: done
#
# time sleep + submit command + fetch results
# 1691326306 : main: connected
# 1691326426 : main: slept (disconnected)
# 1691326426 : main: connected: True
# 1691326426 : main: submitted status
# 1691326426 : main: connected: True
# 1691326426 : main: awaiting command result failed: ConnectionError('Connection lost while reading line')
# 1691326426 : main: connected: False
# 1691326426 : main: done
#
# submit command + async sleep + fetch results
# 1691326541 : main: connected
# 1691326541 : main: submitted status
# 1691326541 : main: connected: True
# 1691326661 : main: slept (disconnected)
# 1691326661 : main: connected: True
# 1691326661 : main: awaiting command result succeeded
# 1691326661 : main: connected: True
# 1691326661 : main: done
#
# submit command + time sleep + fetch result
# 1691326721 : main: connected
# 1691326721 : main: submitted status
# 1691326721 : main: connected: True
# 1691326841 : main: slept (disconnected)
# 1691326841 : main: connected: True
# 1691326841 : main: awaiting command result succeeded
# 1691326841 : main: connected: True
# 1691326841 : main: done
# time sleep + submit command + reconnect + fetch results + submit/fetch again
# 1691327990 : main: connected
# 1691328110 : main: slept (disconnected)
# 1691328110 : main: connected: True
# 1691328110 : main: submitted status
# 1691328110 : main: connected: True
# 1691328110 : main: re-connected
# 1691328110 : main: connected: True
# 1691328110 : main: awaiting command result failed: ConnectionError('Connection lost while reading line')
# 1691328110 : main: connected: True
# 1691328110 : main: submitted status
# 1691328110 : main: awaiting command result succeeded
# 1691328110 : main: done
#
# time sleep + submit command + reconnect + time sleep + fetch results + submit/fetch again
# 1691328676 : main: connected
# 1691328796 : main: slept (disconnected)
# 1691328796 : main: connected: True
# 1691328796 : main: submitted status
# 1691328796 : main: connected: True
# 1691328796 : main: re-connected
# 1691328796 : main: connected: True
# 1691328916 : main: slept (disconnected)
# 1691328916 : main: connected: True
# 1691328916 : main: awaiting command result failed: ConnectionError('Connection lost while reading line')
# 1691328916 : main: connected: True
# 1691328916 : main: submitted status
# 1691328916 : main: connected: True
# 1691328916 : main: awaiting command result failed: ConnectionError('Connection lost while reading line')
# 1691328916 : main: connected: False
# 1691328916 : main: done
import time
import pprint
import asyncio
import mpd.asyncio
def gt():
return str(int(time.time())) + " :"
async def main():
client = mpd.asyncio.MPDClient()
await client.connect("localhost", 6600)
print(gt(), "main: connected")
#await asyncio.sleep(120)
time.sleep(120)
print(gt(), "main: slept (disconnected)")
c = client.connected
print(gt(), "main: connected: ", c)
f = client.status()
print(gt(), "main: submitted status")
c = client.connected
print(gt(), "main: connected: ", c)
await client.connect("localhost", 6600)
print(gt(), "main: re-connected")
c = client.connected
print(gt(), "main: connected: ", c)
time.sleep(120)
print(gt(), "main: slept (disconnected)")
c = client.connected
print(gt(), "main: connected: ", c)
try:
await f
except Exception as e:
print(gt(), "main: awaiting command result failed: ", repr(e))
else:
print(gt(), "main: awaiting command result succeeded")
c = client.connected
print(gt(), "main: connected: ", c)
f = client.status()
print(gt(), "main: submitted status")
c = client.connected
print(gt(), "main: connected: ", c)
try:
await f
except Exception as e:
print(gt(), "main: awaiting command result failed: ", repr(e))
else:
print(gt(), "main: awaiting command result succeeded")
c = client.connected
print(gt(), "main: connected: ", c)
print(gt(), "main: done")
asyncio.run(main())
Metadata
Metadata
Assignees
Labels
No labels