Django channels与Redux之间的可重用桥梁
项目描述
Django channels与Redux之间的可重用桥梁。
快速入门
$ pip install django_redux $ npm install django-channels django_redux
为您的项目创建一个名为 engine.py 的文件
from django_redux import action, AsyncReduxConsumer class MyConsumer(AsyncReduxConsumer): async def connect(self, message): if message.user.is_authenticated: await self.send_json({ 'type': 'SET_USER', 'user': { 'username': self.message.user.username, } }) # This method will be called when the `INCREMENT_COUNTER` action gets # fired from the JS via the reduxBridge (see below). @action('INCREMENT_COUNTER') async def incr_counter(self, message): await self.send_json({'type': 'INCREMENTED_COUNTER', 'incrementBy': message['incrementBy']})
在您的js入口点
// app.js import React from 'react'; import { render } from 'react-dom'; import { Provider } from 'react-redux'; import { createStore, } from 'redux'; import reducer from '../reducers'; import Root from '../containers/Root.react'; import { WebSocketBridge } from 'django-channels'; import { eventToAction } from 'django_redux'; const store = createStore( reducer, ); export const reduxBridge = new WebSocketBridge(); reduxBridge.connect("ws://:8000/ws/"); reduxBridge.addEventListener("message", eventToAction(store)); render( <Provider store={store}> <Root /> </Provider>, document.getElementById('root') );
从redux发送一个动作
import { createAction } from 'redux-actions'; import ActionTypes from './constants'; import { reduxBridge } from './app'; export const incrementCounter = createAction(ActionTypes.INCREMENT_COUNTER, (incrementBy) => { reduxBridge.send({ type: ActionTypes.INCREMENT_COUNTER, incrementBy }); });
从后端发送一个动作
from django_redux import send_action await send_action('mygroup', { 'type': 'ACTION_NAME', 'payload': {'any': 'thing'}, })
组
所有客户端都会自动添加到一个名为 “broadcast” 的组。
认证用户会自动添加到一个名为 “user.{user.pk}” 的组,以便您可以方便地引用。
待办事项
- 测试
send_action
数据绑定
- 文档
多路复用
致谢
大部分代码是从johnpaulett/channel_chat改编的。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
django_redux-1.0.0.tar.gz (3.6 kB 查看哈希值)
构建分发版
django_redux-1.0.0-py2.py3-none-any.whl (135.9 kB 查看哈希值)
关闭
django_redux-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4ff85b1484d7c763bade92df99afecfa6ee145cb70c8bcffa0288f696010a915 |
|
MD5 | 3c003935669d0a35f05c48e08c63db57 |
|
BLAKE2b-256 | fa2562ddc3bce150df9b92f0efa760500576022086b8827ee3f511df9495b96b |
关闭
django_redux-1.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b5116dc04f6b6c0fce9a984b53230e3c7717e9be43fbf727dd170ad70ddc1ee1 |
|
MD5 | 9d777c86f2cc251da57ea230d857870c |
|
BLAKE2b-256 | cbebef074e9875dcf4635b5bcf8ee146500a39d6dbe3d7a6bb66e846aed278cf |