Forum Discussion

bojancv's avatar
bojancv
Visitor
8 years ago

Closing Sockets/Stop Tasks on app exit/close

HI everybody,

i am getting starting with Roku development and after playing around with examples and reading through the docs, forums etc i've noticed that there is no app close/exit event handling through app code or handling the Home button etc...

With that in mind i have the following situation:

I start a component Task that opens a TCP socket/connection and listens for some custom commands i send. The Task of course runs in a loop waiting and reading the data as it comes through the socket, updates the app UI and so on...  (similar to this example https://sdkdocs.roku.com/display/sdkdoc/roStreamSocket  just without allowing multiple connections)

How am i supposed to handle closing the TCP socket/port if i am unable to catch the app/exit close events? 

Should i even worry about that on the Roku/BrightScript side, are the sockets automatically closed and Tasks stopped? (i've noticed that the rerunning the app after pressing Home successfully opens the socket connection on the same port so i guess that it got closed properly, but still it kinda feels wrong without any code handling :))

I've seen on this example https://sdkdocs.roku.com/display/sdkdoc/roDataGramSocket  that it says : 
udp.close()  ' would happen automatically as udp goes out of scope

Which leads me to believe that the closing happens automatically when the app closes. (as with some tests i implemented)

Am i getting this right? 🙂  Is so all i need to do is implement some ping/pong events for the client side to be able to detect that the Roku app socket got closed.

1 Reply

  • Well just to post if anyone bumps into the same question, the sockets are closed automatically and tasks are stopped also.