服务器发送的事件侦听器没有被击中?
Server Sent Events Listeners not being hit?
我刚开始使用 SSE,并且已经在一定程度上实现了它。我能够向服务器发出 http 请求,但我得到的每个响应都会返回到 onmessage 函数。我似乎无法弄清楚为什么我的自定义侦听器没有受到攻击。我有一个 "ping" 的监听器和一个 "pong" 的监听器。在我的 python 脚本中,我设置了两个事件...一个用于 "ping",另一个用于 "pong"。我错过了什么?
print "Content-Type: text/event-stream"
print "Cache-Control: no-control"
while True:
print "event: ping\n"
print "id: " + str(randint(0,9))
print "data: Hello World!\n"
print "\n\n"
sys.stdout.flush()
source.onopen = function() {
alert("On open");
};
source.addEventListener("ping", function(e)
{
alert("On ping");
}, false);
source.addEventListener("pong", function(e)
{
alert("On pong");
}, false);
source.onmessage = function(event)
{
alert("On message");
};
我检查了响应 header,它包含事件:ping。不确定为什么事件侦听器没有接收到它?
我终于弄明白了,还是谢谢你。从 print "event: ping\n"
中删除 \n 后,问题就解决了。
我刚开始使用 SSE,并且已经在一定程度上实现了它。我能够向服务器发出 http 请求,但我得到的每个响应都会返回到 onmessage 函数。我似乎无法弄清楚为什么我的自定义侦听器没有受到攻击。我有一个 "ping" 的监听器和一个 "pong" 的监听器。在我的 python 脚本中,我设置了两个事件...一个用于 "ping",另一个用于 "pong"。我错过了什么?
print "Content-Type: text/event-stream"
print "Cache-Control: no-control"
while True:
print "event: ping\n"
print "id: " + str(randint(0,9))
print "data: Hello World!\n"
print "\n\n"
sys.stdout.flush()
source.onopen = function() {
alert("On open");
};
source.addEventListener("ping", function(e)
{
alert("On ping");
}, false);
source.addEventListener("pong", function(e)
{
alert("On pong");
}, false);
source.onmessage = function(event)
{
alert("On message");
};
我检查了响应 header,它包含事件:ping。不确定为什么事件侦听器没有接收到它?
我终于弄明白了,还是谢谢你。从 print "event: ping\n"
中删除 \n 后,问题就解决了。