django-eventstream如何使用,包括如何构建urls.py和views.py
时间: 2024-02-11 09:04:03 浏览: 223
要使用 django-eventstream,需要在 Django 项目中进行以下步骤:
1. 安装 django-eventstream:
```
pip install django-eventstream
```
2. 在你的 Django 项目的 settings.py 中添加以下设置:
```python
INSTALLED_APPS = [
# ...
'eventstream',
# ...
]
MIDDLEWARE = [
# ...
'eventstream.middleware.ServerSentEventsMiddleware',
# ...
]
# 以下设置可选
EVENTSTREAM_HEARTBEAT_INTERVAL = 30 # 心跳间隔秒数
EVENTSTREAM_IDLE_TIMEOUT = 3600 # 客户端无响应超时秒数
```
3. 在你的 Django 项目的 urls.py 中添加以下 URL 模式:
```python
from django.urls import path
from eventstream.views import EventStreamView
urlpatterns = [
path('stream/', EventStreamView.as_view(), name='stream'),
]
```
4. 在你的 Django 项目的 views.py 中创建视图函数:
```python
from eventstream.views import BaseEventStreamView
class MyEventStreamView(BaseEventStreamView):
def stream(self):
# 生成事件消息并推送到客户端
yield 'data: Hello, world!\n\n'
yield 'data: Goodbye, world!\n\n'
```
5. 在客户端使用 EventSource 对象连接到该视图:
```javascript
var source = new EventSource('/stream/');
source.onmessage = function(event) {
console.log(event.data);
};
```
现在,当客户端连接到 /stream/ 时,服务器将推送事件消息到客户端。在上面的示例中,服务器将推送两条消息("Hello, world!" 和 "Goodbye, world!"),并将它们打印到浏览器的控制台中。
阅读全文