You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Peter Figliozzi <pe...@gmail.com> on 2016/02/11 19:10:18 UTC

Getting EventSource changes feed working

I am trying to get the changes feed working using the Event Source method.
Here is the example from the docs
<http://docs.couchdb.org/en/1.6.1/api/database/changes.html>:

// define the event handling function
> if (window.EventSource) {
>   var source = new EventSource("/somedatabase/_changes?feed=eventsource");
>
>   var results = [];
>   var sourceListener = function(e) {
>     var data = JSON.parse(e.data);
>     results.push(data);
>   };
>   // start listening for events
>   source.addEventListener('message', sourceListener, false);
>   // stop listening for events
>   source.removeEventListener('message', sourceListener, false);
> }


When I work up something similar, I get the following error message:

EventSource's response has a MIME type ("text/plain") that is not
"text/event-stream". Aborting the connection.

*So I believe I need to tell the changes feed to use "text/event-stream"
instead of "text/plain".  How is that done?*

In this case I am working from the browser, passing the url in the
EventSource constructor:

var source = new EventSource("/somedatabase/_changes?feed=eventsource");

Thank you,

Pete

Re: Getting EventSource changes feed working

Posted by Peter Figliozzi <pe...@gmail.com>.
My bad, I had formed my URL incorrectly, like this:

"/somedatabase/_changes/feed=eventsource"

Note the '/' instead of a '?'.

Apparently this caused it to use the 'normal' changes feed, with
response type 'text/plain'.

The 'eventsource' feed works just fine, out of the box.

Pete


On Thu, Feb 11, 2016 at 12:10 PM, Peter Figliozzi <pe...@gmail.com>
wrote:

> I am trying to get the changes feed working using the Event Source
> method.  Here is the example from the docs
> <http://docs.couchdb.org/en/1.6.1/api/database/changes.html>:
>
> // define the event handling function
>> if (window.EventSource) {
>>   var source = new EventSource("/somedatabase/_changes?feed=eventsource");
>>
>>   var results = [];
>>   var sourceListener = function(e) {
>>     var data = JSON.parse(e.data);
>>     results.push(data);
>>   };
>>   // start listening for events
>>   source.addEventListener('message', sourceListener, false);
>>   // stop listening for events
>>   source.removeEventListener('message', sourceListener, false);
>> }
>
>
> When I work up something similar, I get the following error message:
>
> EventSource's response has a MIME type ("text/plain") that is not
> "text/event-stream". Aborting the connection.
>
> *So I believe I need to tell the changes feed to use "text/event-stream"
> instead of "text/plain".  How is that done?*
>
> In this case I am working from the browser, passing the url in the
> EventSource constructor:
>
> var source = new EventSource("/somedatabase/_changes?feed=eventsource");
>
> Thank you,
>
> Pete
>