Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
MrLlama
Level 7

roStreamSocket documentation example has a bug

The roStreamSocket "echo server" example contains a bug.  Specifically, when the socket IDs happen to be over 8 digits long, the `Str(socket_id)` representation loses precision because it uses scientific notation.  Given that subsequent connections usually have similar socket IDs, this can lead to different connections having the same stringified representation:

Brightscript Debugger> ? connection.GetID()
 87031812

Brightscript Debugger> ? Str(connection.GetID())
 8.703181e+07

Brightscript Debugger> ? connection.GetID().ToStr()
87031812

Note that in the above example, the Str() result is missing the final "2" digit.

0 Kudos
3 REPLIES 3
RokuPam
Roku Employee
Roku Employee

Re: roStreamSocket documentation example has a bug

Hi @MrLlama,

Thanks for your feedback and reporting this documentation error! Where exactly in the documentation are you seeing this error? I took a look at the article, but was unable to find an instance of scientific notation (rather than the full string). 

0 Kudos
MrLlama
Level 7

Re: roStreamSocket documentation example has a bug

The issue isn't that the article itself uses scientific notation, it's that it fails to account for Str(some_big_number) returning a string in scientific notation.  This causes a loss of precision and can cause multiple connections with different IDs to end up with the same Str(connection_id).

0 Kudos
RokuPam
Roku Employee
Roku Employee

Re: roStreamSocket documentation example has a bug

Thank you for clarifying! We've created a ticket with the responsible engineering team to investigate further. 

0 Kudos