You need to encode once to a byte array then send the byte array on each 
connection. 

> On Dec 23, 2020, at 3:45 PM, meera <lordhowen...@gmail.com> wrote:
> 
> 
> I am trying to create a package for game servers using gob. The current 
> approach is an application level multicasting over TCP, having a gob encoder 
> and decoder for each player connection, and set up a goroutine to receive and 
> another to dispatch for each one. The code for the dispatcher is here. But 
> summarized, it simply receives data from a channel and encodes it.
> 
> The problem is that if i want to transmit a single piece of data to all 
> players, this piece of data is encoded again and again for each connection, 
> doing duplicate work. With less than 100 players this is not a problem, but 
> with 300+ my machine is at almost 100% usage and the profiler shows that most 
> of it is spent on encoding. Here's the issue on github.
> 
> I tryied using a io.MultiWriter but gob complains of duplicate type received, 
> and if i try to write the raw bytes from the gob.Encoder i get corrupted 
> data. An option is using UDP Broadcasting but since gob expects a stream, i'm 
> affraid i will run into unexpected behavior when packets start to be lost and 
> fragmented.
> 
> Does gob expect a single encoder and decoder to own the stream? Not allowing 
> two encoders on the server for one decoder on the client?
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/0562184e-bbcc-44c9-adbf-37e8d5411c7cn%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/694AAB7E-029B-4250-8758-D22E3719928A%40ix.netcom.com.

Reply via email to