django-eventstream使用
时间: 2023-07-11 20:10:13 浏览: 214
django-eventstream:Django的服务器发送事件
django-eventstream 是一个 Django 应用程序,它提供了用于在服务器和客户端之间实时推送事件的功能。以下是使用 django-eventstream 的基本步骤:
1. 安装 django-eventstream:
```
pip install django-eventstream
```
2. 将 eventstream 添加到你的 Django 项目的 INSTALLED_APPS 中:
```python
INSTALLED_APPS = [
# ...
'eventstream',
# ...
]
```
3. 在你的 Django 项目中创建一个视图函数,并使用 eventstream.decorators.require_eventstream_header 装饰器装饰它。这将确保只有使用 EventSource 对象的客户端才能访问该视图。
```python
from django.http import HttpResponse
from eventstream.decorators import require_eventstream_header
@require_eventstream_header
def stream(request):
def event_generator():
yield 'data: Hello, world!\n\n'
yield 'data: Goodbye, world!\n\n'
return HttpResponse(event_generator(), content_type='text/event-stream')
```
4. 在客户端使用 EventSource 对象连接到该视图:
```javascript
var source = new EventSource('/stream/');
source.onmessage = function(event) {
console.log(event.data);
};
```
现在,当客户端连接到该视图时,服务器将推送事件消息到客户端。在上面的示例中,服务器将推送两条消息("Hello, world!" 和 "Goodbye, world!"),并将它们打印到浏览器的控制台中。
阅读全文