Open endreszabo opened 3 months ago
We actually do have pinging. We also drop the connection if there is no response for a certain timeframe. This is especially true with udp cameras since a camera must be dropped if no acknowledgement packet is sent within about 3s (camera will drop us too in this situation).
Perhaps it is not the ping but something causing the reconnect to lock up.
I notice your connecting over tcp instead of udp. There's no ack packets there and instead we rely on link packets to ping. I'll have a look into tcp keep alive ping
Describe the bug neolink does not detect cameras that get disconnected.
To Reproduce Steps to reproduce the behavior. Example:
[[cameras]] name = "kert" username = "admin" password = "foobar" address = "44.128.4.84:9000" stream = "mainStream" discovery = "local" print_format = "Human"
[mqtt] broker_addr = "127.0.0.1" port = 1883
[cameras.mqtt] enable_preview = false
Shortly,
neolink
will print:neolink
will send the following two MQTT messages at the same time:Expected behavior I expected
neolink
to realize that a camera had been disconnected in real-time. Upon realizing this,neolink
should have sent theneolink/kert/status
with the value ofdisconnected
right away. Maybeneolink
should employ some protocol-level pinging/keepalive to check on the cameras whose sockets went silent.Versions NVR software: n/a Neolink software:
quantumentangledandy/neolink:latest (8daa1de9056e)
Reolink camera model and firmware: Model RLC-843A, Firmware Version v3.1.0.2948_23112721 (latest as of now)