It seems I misread your original post. I thought the dataFeeder() function was, in fact, exiting. An explicit ws.Close probably wouldn't have done anything more than just returning form dataFeeder (I think the http server cleans up connections by itself), though it's always nice to explicitly close the resources anyway.
There's two things that come to mind now:
1) Perhaps it's a bug in Chrome, when you call close() from the client side it doesn't actually close the connection. What happens when you close the tab in chrome? What happens when you close the browser entirely? Did you check if the FIN packet was sent with wireshark?
That's the way I setup my WebSocket connections, spin up a goroutine for writing, and block the http handler on the reader side.