[tornado]websocket 最簡單demo
想法
前兩天想看看django 長輪詢或者是websocket的方案,發現都不太好使。 tornado很適合做這個工作,於是找了些資料,參照了做了個最簡單demo,以便備用。
具體的概念就不說了,tornado沒怎麼用過,但是python的web框架入門起來都是基本相當,沒什麼難度,即使沒用過,看懂還是挺容易的。
檔案目錄
程式碼清單
ws_app.py
#-*- encoding:utf-8 -*- #2014-12-18 #author: orangleliu import tornado.web import tornado.websocket import tornado.httpserver import tornado.ioloop class IndexPageHandler(tornado.web.RequestHandler): def get(self): self.render('index.html') class WebSocketHandler(tornado.websocket.WebSocketHandler): def check_origin(self, origin): return True def open(self): pass def on_message(self, message): self.write_message(u"Your message was: "+message) def on_close(self): pass class Application(tornado.web.Application): def __init__(self): handlers = [ (r'/', IndexPageHandler), (r'/ws', WebSocketHandler) ] settings = { "template_path": "."} tornado.web.Application.__init__(self, handlers, **settings) if __name__ == '__main__': ws_app = Application() server = tornado.httpserver.HTTPServer(ws_app) server.listen(8080) tornado.ioloop.IOLoop.instance().start() ''' python ws_app.py '''
index.html
<!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>Tornado Websocket</title> </head> <script type="text/javascript"> var ws; function onLoad(){ ws = new WebSocket("ws://localhost:8080/ws"); ws.onmessage = function(e){ alert(e.data) } } function sendMsg(){ ws.send(document.getElementById('msg').value); } </script> <body onload='onLoad();'> Message to send: <input type="text" id="msg" /> <input type="button" onclick="sendMsg();" value="傳送" /> </body> </html>
遇到的問題
在websocket除錯的時候總是出現403錯誤
實驗結果
參考文章
相關推薦
[tornado]websocket 最簡單demo
想法 前兩天想看看django 長輪詢或者是websocket的方案,發現都不太好使。 tornado很適合做這個工作,於是找了些資料,參照了做了個最簡單demo,以便備用。 具體的概念就不說了,tornado沒怎麼用過,但是python的web框架入門起來都是基本相當,沒
vue2.0使用websocket的簡單demo
1.首次接觸websocket,花了一天多的時間尋找相關資料,參考了網路上的相關例子(https://www.cnblogs.com/qilin-3611/p/7054270.html),整理出一個簡單前端、後臺demo,後臺demo直接使用連結中的文章的demo,下載後部署在8.0以上的tomca
Hibernate5.3.6之最簡單demo
剛開始學習hibernate,把自己做第一個demo記錄下來,方便以後檢視 jdk版本:1.8 MySQL版本:8.0 mysql連線驅動版本:8.0.12 Hibernate版本:5.3.6 1.這個是我的目錄結構: 需要的Hibernate包 2.編
[tornado示例]最簡單的表單輸入和顯示
有時候做一些簡單的前端學習的時候可能需要表單來配合ajax和後臺互動的模擬。 python版本 2.7.5 tornado版本 3.0.1 so: win7 #!/usr/bin/env pytho
spark最簡單demo解讀
object AstronTest { def main(args: Array[String]): Unit = { println("hello,astron!") } } obj
訊息推送springboot+websocket簡單demo
這裡為了方便,使用springboot實現。模板引擎使用thymeleaf(預設)。 springboot+websocket demo下載:https://gitee.com/chen_jia_hao/websocket 1、Intellj Idea 建立新的springboot專案。
一個gtk3的css使用的最簡單的demo
首先裝好gtk3的依賴,不管是fedora還是ubuntu裝好之後執行: pkg-config --cflags --libs "gtk+-3.0" 能正常顯示gtk3的依賴情況說明gtk3已經裝好,之後編譯: gcc css-demo.c `pkg-c
【koa】koa入門,一個最簡單的koa demo
const Koa = require('koa'); // 建立一個Koa物件表示web app本身: const app = new Koa(); // 對於任何請求,app將呼叫該非同步函式處理請求: app.use(async (ctx, next)
Kettle學習------最簡單的第二個Demo
將MySQL資料庫的表全量匯入Qracle中: 1、新建轉換 2.連線Oracle 3、連線MySQL 4、拖動一個表輸入和一個表輸出至空白區,雙擊表輸入,資料庫連線選擇MySQL(我這裡名字叫tcc) 5、按住Shift鍵將兩個連起來,雙擊表輸出,選擇資料庫連線為O
Flask-login 簡單 Demo, 最簡單的實現登入方法
Flask-login 簡單 Demo, 最簡單的實現登入方法 * 當使用MethodView的時候,login_required 使用方法 class XxxxView(MethodView): decorators = [login_required] #
(二)Web框架-龍捲風Tornado之世界上最簡單的Tornado示例
原始碼 # _*_coding:utf-8_*_ import tornado.ioloop import tornado.web class MainHandler(tornado.web.R
spring boot + webSocket 實現簡單會話與線上人數統計的demo
webSocket推送是常用於生產專案的模組,在我們部門做的一個彙報演示的demo中遇到了webSocket的一些問題。 自己下來看看了看webSocket的東西,結合spring boot 做了一個簡單的demo; 介紹的部分大家可以參考眾多的帖子,度娘 http://w
最簡單快速的仿微信聊天 demo
TestChatdemo 專案地址:PangHaHa12138/TestChatdemo 簡介:a demo for Android chat look like Weixin 最簡單快速的仿微信聊天 demo 附贈微信原生表情,qq 原生表情 更多:作者 &nbs
Dubbo:Dubbo入門---搭建一個最簡單的Demo框架
https://blog.csdn.net/noaman_wgs/article/details/70214612 Dubbo是什麼 Dubbo是: 一款分散式服務框架 高效能和透明化的RPC遠端服務呼叫方案 SOA服務治理方案 每天為2千多個服務提供大於30億次訪問量支援,
Android開發之BlueTooth--最簡單的Andorid傳統藍芽通訊Demo
又到了Android小白的開發之路上寫筆記的時間了~~ 開篇都不知道說什麼好... ...前兩個月寫了WIFI,後來也想寫一下藍芽的,可惜公司產品不給力,出現了很多BUG,一直在修啊修,最近終於有點空閒時間了。那就來簡單的嘗試一下 關於藍芽開發,優秀部落格一大片,你能來看我
基於TCP實現的最簡單RPC demo
package com.caicongyang.provider; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.reflec
用tornado實現一個簡單的websocket樣例
想用SPRING MVC,NODE.JS EXPRESS,TORNADO實現同一個功能,開闊一下視野。 先來TORNADO的吧。。 客戶端程式碼都差不多,主要是服務端程式碼。 TORNADO的說法: http://www.tornadoweb.org/en/stable/websocket.html
android最簡單的生成二維碼demo
package com.example.administrator.twocodedemo; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; impo
Dubbo入門---搭建一個最簡單的Demo框架
Dubbo背景和簡介 Dubbo開始於電商系統,因此在這裡先從電商系統的演變講起。 單一應用框架(ORM) 當網站流量很小時,只需一個應用,將所有功能如下單支付等都部署在一起,以減少部署節點和成本。 缺點:單一的系統架構,使得在開發過程中,佔用的資源越來越多,而且隨著流量的增加越來越難以維護 垂
tornado websocket程式設計(1) 初識websocket ——簡單購物車實現
tornado websocket程式設計 : 初識websocket ——簡單購物車實 app.py 基本結構(或者說是一個手腳架吧,一步一步的新增我們需要的功能) #!/usr/bin/env python # -*-coding:utf-8