Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
greubel
Visitor

Re: Question about joinGroup()

If you display the results

? "Join = " listen.joinGroup(groupAddr)

It comes back as false ???
Now does this really imply it failed ?
0 Kudos
RokuMEmerson
Visitor

Re: Question about joinGroup()

joinGroup followers: I just noticed that my server was actually broadcasting rather than multicasting, so I don't have evidence that the code above actually received group sends. I'll investigate further and post.
0 Kudos
eswarbala
Visitor

Re: Question about joinGroup()

memerson - joingroup still fails in the code sample you posted and no IGMP packet gets sent.

RokuJoel - I have sent an email to you with demonstration code to repro this issue. I can speak for two other guys, who look forward for a fix to this issue 🙂

thanks
0 Kudos
Anonymous
Visitor

Re: Question about joinGroup()

Hi everyone,

We've identified the issue with Multicast joingroup and are working to have a fix in a forthcoming firmware release. At this time, however, I don't have an eta to share.

Patrick
0 Kudos
RokuMEmerson
Visitor

Re: Question about joinGroup()

There was a host-network byte order problem found with joinGroup() and dropGroup(). This would make it difficult to write a UPnP/SSDP server without a kludgey address trick.

The kludgey address trick is to reverse the order of the octets in the group address passed to joinGroup() and dropGroup() only. Use regular order for multicast send() and all other uses. This workaround will be invalidated by the fix, so a new version of the channel would have to be issued when the fix is released.

Here is sample workaround code to join the SSDP search/notify group:

groupSocket = CreateSocket("roDatagramSocket")
groupAddr = CreateObject("roSocketAddress")
groupAddr.setAddress("250.255.255.239") ' note reversed order of octets
groupSocket.joinGroup(groupAddr)

There was also some confusion around whether client-side joinGroup() is necessary for clients to discover UPnP server devices on a network via SSDP. Since multicast group membership is not necessary to send multicast messages to that group, it is quite possible for client Roku scripts to discover and maintain SSDP-level communication with UPnP/SSDP servers even in the face of this bug and without non-standard kludges. If event notification via multicast or other multicast reception is critical to layered protocols, then of course they will be affected.
0 Kudos
TheEndless
Channel Surfer

Re: Question about joinGroup()

"RokuPatrick" wrote:
Hi everyone,

We've identified the issue with Multicast joingroup and are working to have a fix in a forthcoming firmware release. At this time, however, I don't have an eta to share.

Patrick

What's the likelihood of it being fixed for both Roku 1 and Roku 2 firmwares?
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
mmcbride
Newbie

Re: Question about joinGroup()

I'm playing with the sample code in this thread and wondering why I cannot get it to work when I change the listener from SSDP to mDNS. The code works properly when used unchanged and I see SSDP information. I've changed the following lines.

Original Code:
ssdpAddress = "239.255.255.250"
ssdpPort = 1900

New Code:
ssdpAddress = "224.0.0.251"
ssdpPort = 5353


A LAN trace shows that there are really UDP mDNS packets with those parameters on my network that the Roku can see, but they never seen to be seen by the modified example code. The changed mDNS address and port correspond to information found at http://en.wikipedia.org/wiki/Multicast_DNS#Packet_structure

Any ideas?
0 Kudos