在NodeJS中使用服务器发送事件不在客户端接收数据

时间:2015-05-31 19:53:35

标签: javascript jquery node.js server-sent-events

我有一个网页,其中包含一个网页的文字输入,我想获取这些信息。

在客户端我有这个:

function login() {
    webpage = document.getElementById("webpage").value;
    alert(webpage);

    source = new EventSource(
        "http://localhost:8000/register?name="+webpage, 
        {'Access-Control-Allow-Origin' :'*'}
    );

    source.onmessage = function(event) {
        var a = event.data;
        alert(a);
    };
}

在服务器中我有这个:

response.writeHead(200, {
    'Content-Type' : 'text/event-stream; charset=utf-8',
    'Cache-Control' : 'no-cache',
    'Connection' : 'keep-alive',
    'Access-Control-Allow-Origin': '*'
});

但是,我正在尝试获取aalert(a)并没有做任何事情。知道这段代码中的问题是什么?或者如何使它工作?也欢迎jQuery中的建议。

1 个答案:

答案 0 :(得分:2)

看起来你实际上并没有从服务器发送任何数据,只是设置标题不会做太多。

您还需要实际发送事件/数据

res.write('event:data\n')

您正在使用Server Sent Events with NodeJS(在询问时您可能没有意识到这一点),因此请搜索如何使用它。 Here's a good start