To remedy this problem currently, clients need to send a continious ping command to keep the connection busy while they "listen". This however entails an unnecesary performance penalty, since the ping itself isn't really necessary - any data would do, as long as it is available within the timeout interval.
A more efficient solution would be to have a dedicated command that sends an empty !re reply at a certain specified interval OR if the listen command does that if an optional argument with an interval is specified (since the listen command is really where the problem is). Personally, I'd prefer the latter, but I'll be happy with the first too.
e.g.
Code: Select all
/ip/arp/listen
.tag=arp
=keep-alive-interval=2s
Code: Select all
!re
.tag=arp
!re
.tag=arp
Code: Select all
!re
.tag=arp
!re
.tag=arp
=.id=*68
=.dead=yes
!re
.tag=arp