flask_socketio 使用范例
最近看flask有关的文档。想security, sqlalchemy, jwt等等相关的插件都没有问题。唯独这个socketio, 跟着官方文档一起蒙, 如果不看github上面的范例还真不好懂。
https://flask-socketio.readthedocs.io/en/latest
从文档的initialization到recieving message等,你在本地就是不能测。
所以只能配合他人的博客来理解了。
1.初始化应用##
from flask import Flask, render_template
from flask_socketio import SocketIO
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
if __name__ == '__main__':
socketio.run(app)
在这个基础上我们添加一个Index.html
@app.route('/')
def index():
return render_template('index.html')
然后建立相应的templates/index.html
并填入
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
socket.emit('my event', {data: 'I\'m connected!'});
});
</script>
这个script创建了一个socket对象,链接到本地。并且创建了一个叫‘connect'的event。
注意,sockeio里面的'connect', 'disconnect', 'message' 以及 'json'是保留的event, 其他的就属于自定义的
还有一个重要的参数就是namespace, 但是我们在建立链接的时候,最后没有添加namespace,所以就是默认的全局namespace
既然客户端建立了一个叫connect的event, 将会在建立链接的时候调用,然后emit了一个叫'my event'的event, 那么这个自定义的event将会触发,所以我们在服务端写:
@socketio.on('my event')
def my_event(message):
print(message['data'])
这里我们将’my event'收到的message的data字段打印出来,因为上面我们收到的是{data: 'I'm connected!'}这个json格式的数据。
然后启动程序,打开页面,你就可以在终端看到 I'm connected! 这个输出了。
flask_socketio 使用范例的更多相关文章
- C# 7.0 新功能代码范例
随着新版本的IDE Visual Studio 15 紧锣密鼓的开发中,2016年8月24日,微软发布了与之配套的C# 7.0 preview 的新特性. 其主要特性有: 内联声明out变量 (Out ...
- Information Management Policy(信息管理策略)的使用范例
基础知识 很多人都会定期收拾自己的书架或者抽屉,把里面过旧的资料拿走,为新的资料腾出空间来,这样既可以节省空间,而且当冗余资料过多的时候也会降低你查找的速度和效率.那么,在企业的SharePoint中 ...
- Java学习笔记13---一个循环程序的设计范例
package welcome; import java.util.Scanner; /* * 一个循环程序的设计范例 * 首先编写仅执行一次的程序(当无循环时) * 循环的设计步骤: * 1.确定程 ...
- [liusy.api-SMJ]-创建工程范例 MAVEN archetype 学习阶段(一)
由于这个架构需要好多不同能力的工程,为了创建方便减少冗余,创建工程范例尤为重要 学习阶段: 参考资料 http://maven.apache.org/archetype/maven-archetype ...
- 通过 UDP 发送数据的简单范例
package j2se.core.net.udp; import java.io.IOException;import java.net.DatagramPacket;import java.net ...
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h 代码#pragma once#ifdef __cplusplusextern "C" {#e ...
- [TypeScript] Dictionary范例
[TypeScript] Dictionary范例 Playground http://tinyurl.com/o7czcxo Samples class Dictionary { [index: s ...
- [转]Backbone.js简单入门范例
本文转自:http://dmyz.org/archives/598 11年刚开始用前端MVC框架时写过一篇文章,当时Knockout和Backbone都在用,但之后的项目全是在用Backbone,主要 ...
- LaTeX 算法代码排版 --latex2e范例总结
LaTeX 写作: 算法代码排版 --latex2e范例总结 latex2e 宏包的使用范例: \usepackage[ruled]{algorithm2e} ...
随机推荐
- recovery编译学习笔记
开始建立我们要编译机器的device目录 ./build/tools/device/mkvendor.sh htc vivo ~/boot.img 需要自己配置的部分: 位置:cm/deviec/品牌 ...
- 转:窗口启用/禁用功能函数EnableWindow的使用
在非MFC环境中如何使控件或者窗口禁用呢?起初是想通过发送消息来实现,但找来找去都木有找到控件禁用的消息(也是是博主木有找到的缘故),所以只能另辟蹊径,使用 EnableWindow这个函数, 该函数 ...
- Entity Framewor 学习笔记 (碎碎的东西)
Proxy 类代理类是为了让EF实现lazy load才需要的 public class BloggingContext : DbContext { public BloggingContex ...
- 浅析门户网站体育赛事CDN加速解决方案
经过近些年来的高速发展,互联网已经成为现今媒体传播的主要力量.这一点在大型体育赛事的报道与转播上,体现的尤为明显.更及时的信息内容.更多样的报道形式.更齐全的资料组成.更方便的阅读查询.更具互动性的报 ...
- vmware-vdiskmanager
vmware workstation可以用自带的程序vmware-vdiskmanager分成多个2G大小的文件. vmware-vdiskmanager -r Mavericks.vmdk -t 1 ...
- linux应用程序地址布局
Linux应用程序在内存中的布局,由高地址到低地址依次为:栈.堆.BSS段.数据段.代码段.代码段的起始地址固定为0x8048000,无论哪一个应用程序它的代码段起始地址一定是0x8048000,这里 ...
- POJ-1488(字符串应用)
Description TEX is a typesetting language developed by Donald Knuth. It takes source text together w ...
- Hello,world,l'm coming!
#include<studio.h> int main() { printf("Hello,Word!" l'm coming\n"); return0; }
- JSP动作--JSP有三种凝视方式
一.JSP动作 动作是特殊的标记,通过一个动作标记能够实现多行Java代码实现的效果.能够动态插入文件.重用JavaBean组件.导向还有一个页面等. 动作元素和指令元素不同,动作元素是在client ...
- debian linux 中如何查看软件包是否已经安装和如何安装、卸载软件
练习 1 方案:确定软件包是否安装 如果您不确定某个软件包是否已经安装,可以使用 dpkg 的 -l (L的小写) 选项: $ dpkg -l zsh No packages found matchi ...