Django 频道实时 API
Django Channels Realtime API
因此,我正在使用 Django REST Framework 为我的 React Native 应用构建一个 API。现在我想实现聊天功能,我想使用 Django Channels 通过 TCP 连接构建实时聊天功能。现在我读到我无法使用 Django Channels 构建实时 API。这是否意味着,我不能在我的服务器上使用 Django Channels 和在我的 React Native APP 中使用 this?:
var ws = new WebSocket('ws://host.com/path');
ws.onopen = () => {
// connection opened
ws.send('something'); // send a message
};
ws.onmessage = (e) => {
// a message was received
console.log(e.data);
};
ws.onerror = (e) => {
// an error occurred
console.log(e.message);
};
ws.onclose = (e) => {
// connection closed
console.log(e.code, e.reason);
};
我确实没听懂,就像 HTTP(S) 连接的另一个版本或一种 :)
回答
Django REST Framework 是一个让事情变得不那么困难的框架。您也可以用纯 Django 构建一个 API 但这并不容易。所以回答这个问题:
- Python Django REST Framework 让事情变得不那么困难
- 您可以使用纯 Django
构建 REST API
- 您可以使用 Django
构建 HTTP 或 TCP API
信息
Pure Django
Django Rest Framework
Django Channels
Framework for building your backend. You can also build a REST Framework with pure Django, but it isn't that easy
The REST Framework makes things easier. You can easily build a nice REST API for your App or Website
Django Channels helps to build a Real-time API with Django -> It brings WebSockets to Django. So you haven't fetch data, instead, Django pushes them into your APP or Website (e.g. a chat)
Can build a Rest API
Can build a Rest API
Can't build a Rest API
Can't build a Websocket API
Can't build a Websocket API
Can build a Websocket API
链接
我将 Django Rest Framework 与 Angular 一起使用,我能够利用两者的力量。您只需将频道逻辑添加到您的项目中。然后,当您部署您的应用程序时,您将通过异步协议服务器 Daphne 代理传递您的 websocket 请求,然后通过 Gunicorn 等 http 协议服务器代理传递您的 http 请求。查看我在 github 上的示例:https://github.com/ptuckett86/channel_chat
因此,我正在使用 Django REST Framework 为我的 React Native 应用构建一个 API。现在我想实现聊天功能,我想使用 Django Channels 通过 TCP 连接构建实时聊天功能。现在我读到我无法使用 Django Channels 构建实时 API。这是否意味着,我不能在我的服务器上使用 Django Channels 和在我的 React Native APP 中使用 this?:
var ws = new WebSocket('ws://host.com/path');
ws.onopen = () => {
// connection opened
ws.send('something'); // send a message
};
ws.onmessage = (e) => {
// a message was received
console.log(e.data);
};
ws.onerror = (e) => {
// an error occurred
console.log(e.message);
};
ws.onclose = (e) => {
// connection closed
console.log(e.code, e.reason);
};
我确实没听懂,就像 HTTP(S) 连接的另一个版本或一种 :)
回答
Django REST Framework 是一个让事情变得不那么困难的框架。您也可以用纯 Django 构建一个 API 但这并不容易。所以回答这个问题:
- Python Django REST Framework 让事情变得不那么困难
- 您可以使用纯 Django 构建 REST API
- 您可以使用 Django 构建 HTTP 或 TCP API
信息
Pure Django | Django Rest Framework | Django Channels |
---|---|---|
Framework for building your backend. You can also build a REST Framework with pure Django, but it isn't that easy | The REST Framework makes things easier. You can easily build a nice REST API for your App or Website | Django Channels helps to build a Real-time API with Django -> It brings WebSockets to Django. So you haven't fetch data, instead, Django pushes them into your APP or Website (e.g. a chat) |
Can build a Rest API | Can build a Rest API | Can't build a Rest API |
Can't build a Websocket API | Can't build a Websocket API | Can build a Websocket API |
链接
我将 Django Rest Framework 与 Angular 一起使用,我能够利用两者的力量。您只需将频道逻辑添加到您的项目中。然后,当您部署您的应用程序时,您将通过异步协议服务器 Daphne 代理传递您的 websocket 请求,然后通过 Gunicorn 等 http 协议服务器代理传递您的 http 请求。查看我在 github 上的示例:https://github.com/ptuckett86/channel_chat