1
pyengwoei 2017-07-18 11:35:46 +08:00
我有个项目,用 Python 抓过 websocket 的数据
|
2
zhengxiaowai 2017-07-18 11:52:13 +08:00
tornado 自带 websocket 特别简单,以前用 websocket 做过一个实时日志
|
4
mytsing520 2017-07-18 12:03:03 +08:00 1
http://tu.dog
|
5
timwei 2017-07-18 12:03:23 +08:00 1
简单聊天系统的架构: 起一个 Web 服务、一个 WebSocket 服务、一个 database
基本上是用 database 做服务间的数据共享,我是用 Redis 用户透过 Web 服务做验证、取得大厅或房间数据 从大厅进入房间后,渲染 WebSocket 的客端 JS 代码,带用户 Token 联接 WebSocket 服务 |
6
sanmmmm 2017-07-18 12:14:22 +08:00
个人项目用过 flask + socketio,感觉还行.
|
7
lolizeppelin 2017-07-18 12:49:47 +08:00 via Android
抄 openstack 的 vnc 服务
|
8
awanabe 2017-07-18 12:59:54 +08:00
@sanmmmm flask + socketio 是怎么部署的,uwsgi 对 socketio 不友好。。好像只能用 gevent
|
9
arischow 2017-07-18 13:03:03 +08:00
Flask-SocketIO 不错
|
10
NaVient 2017-07-18 16:30:51 +08:00
弹幕系统类似全站广播 用 rabbitmq stomp+ sockjs 做很容易的
|
11
fy 2017-07-18 16:36:58 +08:00 1
tornado 或 aiohttp:原生 ws
sockjs + tornado:比较稳的方案 flask:在 tornado 或 gevent 上跑 flask 一个老早前写的例子: https://github.com/fy0/chat 我是万年 tornado 用户,现在在考虑转 aiohttp。 |
12
maxxxxx 2017-07-18 16:40:52 +08:00
就用 gevent-websocket 起了服务之后在 rerequest 里面取 wsgi.websocket 就好啦
|
14
caniuse 2017-07-18 21:27:37 +08:00
多少用户同时在线??
|
17
timwei 2017-07-20 09:28:41 +08:00
1. 两个服务共用一个数据库
2. send()的时候带上 token 即可 |
18
vZexc0m OP @timwei 感谢回复。我想的是用户通过一个短连接发送消息存入数据库,然后这个长连接能够实时获取用户发送的消息,然后发送给客户端。请问有什么好的实现方式吗
|
19
timwei 2017-07-20 12:26:19 +08:00
@vZexc0m
"送消息存入数据库"、"服务推送到各客户端" 都是通过 WebSocket 的连接 客端来看,分别对应到 send()跟 onmessage() 服务端来看,当客端 send()消息来时,存入数据库,并且对每个连接的客端推送消息的内容 流程整体会是 1. 建立 WebSocket 连接 2. 客端透过 WebSocket 的 send()方法发送消息到服务端 3. 服务端将消息存入数据库后,推送消息到各个客端 4. 客端触发 onmessage 的回调,将推送内容显示 |
21
KgM4gLtF0shViDH3 2017-07-20 15:23:46 +08:00
django + channels
|
22
willhunger 2017-07-25 21:58:46 +08:00
楼主开始动手了吗?打算开源吗?想一起参与
|
23
vZexc0m OP @willhunger 正在写 用的 tornado.websocket,开源的话 感觉代码太烂,拿不出手
|
24
davidshao 2017-07-27 14:44:02 +08:00
@mytsing520。。。过分》。。我微博被强制销户了...土狗怎么登录=。=
|
25
willhunger 2017-07-27 15:17:56 +08:00
@vZexc0m #23 好吧,那楼主加油哦
|
26
chitanda 2019-07-24 00:11:39 +08:00 via Android
线上服务,流量大的话还是慎用吧,七牛欢迎你
|