Skip to content

Proxy Buffers EventSources #3391

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
DeedleFake opened this issue Nov 2, 2017 · 5 comments
Closed

Proxy Buffers EventSources #3391

DeedleFake opened this issue Nov 2, 2017 · 5 comments

Comments

@DeedleFake
Copy link

DeedleFake commented Nov 2, 2017

Is this a bug report?

Yes.

Can you also reproduce the problem with npm 4.x?

Yes.

Environment

  1. node -v: v8.8.1
  2. npm -v: 5.5.1
  3. npm ls react-scripts (if you haven’t ejected): react-scripts@1.0.16

Then, specify:

  1. Operating system: Arch Linux
  2. Browser and version (if relevant): Firefox 57.0b13

Steps to Reproduce

I've got an existing app that I'd like to rewrite using React. The app has a Go backend that provides an EventSource endpoint. I attempted to use the proxy functionality of the development server to route requests for the endpoint to the Go backend.

Example Backend:

func handleEvents(rw http.ResponseWriter, req *http.Request) {
  rw.Header().Set("Content-Type", "text/event-stream")

  for i := 0; true; i++ {
    _, err := fmt.Fprintf(rw, "data: %v\n\n")
    if err != nil {
      break
    }
    rw.(http.Flusher).Flush()
  }
}

Example Frontend:

let es = new EventSource('/events');
es.onmessage = (msg) => {
  console.log(msg);
};

Expected Behavior

It should print a list of numbers in the browser console.

Actual Behavior

Nothing happens at all until I kill the Go backend process, at which point all of the events that the backend had sent arrive suddenly all at once. The EventSource also occasionally calls its onerror callback and then disconnects suddenly for no apparent reason.

Note also that the code works completely fine if I serve the files produced by npm run build directly from the Go backend.

@duhrich
Copy link

duhrich commented Nov 29, 2017

Have you come up with any workarounds in the meantime? Having the same issue...

@gaearon
Copy link
Contributor

gaearon commented Jan 8, 2018

We're happy to take fixes for this if you have suggestions.

@bogdan-calapod
Copy link

After lurking around the internet having the same problem, I think this is related to #966. I think an ok fix would be to toggle webpack dev server's compression via an ENV variable of some kind.

A workaround might be to enable CORS on the SSE server and connect to it directly

@Downchuck
Copy link
Contributor

I think the fix recommended was to set Cache-Control in the SSE headers.
#1633

@stale
Copy link

stale bot commented Nov 2, 2018

This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 7 days if no further activity occurs.

@stale stale bot added the stale label Nov 2, 2018
@Timer Timer closed this as completed Nov 2, 2018
@lock lock bot locked and limited conversation to collaborators Jan 9, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants