python金字塔服务器发送的事件返回

2024-04-26 06:16:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我用金字塔创建了一个简单的sse事件:

但从客户端,我只得到一个错误响应,试图接收事件。你知道吗

def message_generator():
    for i in range(100):
        print("Sending message:" + str(i))
        yield "data: %s\n\n" % json.dumps({'message': str(i)})
        time.sleep(random.randint(1, 10))

@view_config(route_name='ssetest')
def events(request):
    Logger.warn("ssetest")
    headers = [('Content-Type', 'text/event-stream'),
               ('Cache-Control', 'no-cache')]
    response = Response(headerlist=headers)
    response.app_iter = message_generator()
    return response

客户:

Javascript客户端-使用我的金字塔url创建新的Eventsource

var eventSource = new EventSource("myurl" + "/" + ssetest);
eventSource.onmessage = function (e) {
    console.log(JSON.stringify(e));
    targetContainer.innerHTML = e.data;
};
eventSource.onerror = function (e) {
    console.log(JSON.stringify(e));
};

eventSource.addEventListener('message', function (e) {
    console.log(JSON.stringify(e));
}, false);

我会从EventSource得到这个错误,但我不知道哪里出错了。你知道吗

{
    "returnValue": true,
    "timeStamp": 1564393825572,
    "eventPhase": 2,
    "target": {
        "readyState": 2,
        "onopen": null,
        "url": "myurl/ssetest",
        "withCredentials": false,
        "URL": "myurl/ssetest"
    },
    "defaultPrevented": false,
    "srcElement": {
        "readyState": 2,
        "onopen": null,
        "url": "myurl/ssetest",
        "withCredentials": false,
        "URL": "myurl/ssetest"
    },
    "type": "error",
    "cancelable": false,
    "currentTarget": {
        "readyState": 2,
        "onopen": null,
        "url": "myurl/ssetest",
        "withCredentials": false,
        "URL": "myurl/ssetest"
    },
    "bubbles": false,
    "cancelBubble": false
}

少了什么吗?你知道吗

此外,我没有发现任何其他金字塔示例如何创建sse事件:/ 所以如果你有好的例子请帮我

敬礼 费边


Tags: logjsonfalseurlmessageresponse事件function

热门问题