使用tornado實現本地聊天室

2021-07-09 10:18:47 字數 2367 閱讀 8438

1.開發環境

3.聊天室全部原始碼

4.使用說明

1.開發環境

3.聊天室全部原始碼

建立乙個目錄mytalk:mkdir mytalk

進入該目錄:cd mytalk

建立我們的伺服器python原始檔:touch main.py

建立存放html的目錄:mkdir myhtml

進入myhtml:cd myhtml

建立我們的html檔案:touch index.html

回到mytalk,下面是我使用tree命令檢視我們生成的結構:

/mytalk# tree

.├── main.py

└── myhtml

└── index.html

我們的原始碼檔案總共兩個乙個python指令碼main.py,乙個html檔案index.html。下面是我們的原始碼:

#filename:main.py

#this is the server source

import tornado.web

import tornado.ioloop

class

index

(tornado.web.requesthandler):

defget

(self):

self.render('myhtml/index.html')

import tornado.websocket

import json

class

sockethandler

(tornado.websocket.websockethandler):

clients=set()

class

sockethandler

(tornado.websocket.websockethandler):

clients=set()

@staticmethod

defsend_to_all

(message):

for c in sockethandler.clients:

c.write_message(json.dumps(message))

defopen

(self):

self.write_message(json.dumps())

sockethandler.send_to_all()

sockethandler.clients.add(self)

defon_close

(self):

sockethandler.clients.remove(self)

sockethandler.send_to_all()

defon_message

(self,message):

sockethandler.send_to_all()

if __name__=="__main__":

('/',index),

('/soc',sockethandler),

])tornado.ioloop.ioloop.instance().start()

上面使我們的server原始碼我們看到他用到了我們的:

def get(self):

self.render(『myhtml/index.html』)

這個就是我們的html檔案原始碼如下:index.html

var ws = new websocket('ws://localhost:8000/soc');

ws.onmessage=function

(event),

'user':function

(), }[data['type']])();

};script>

function

send

()script>

head>

body>

id='chat'>

onclick='send()'>sendbutton>

id='message'

border='1'>

table>4.使用說明

進入我們的原始碼目錄執行main.py:suso python main.py

此時我們的聊天伺服器就啟動了

開啟瀏覽器輸入:http://localhost:8000/

注:多開啟幾個瀏覽器頁面,這就是我們的瀏覽器客戶端會看到如下:

使用Pidgin實現本地區域網聊天和傳輸檔案

以前章郎蟲介紹過如何使用pidgin同時登入msn,yahoo,人人網,facebook,gtalk等聊天賬號,可能很多還不是很清楚。今天我又發現pidgin的另乙個強大功能,使用pidgin實現區域網聊天和傳輸檔案,而且不一定需要聯網。安裝pidgin 新增帳號 安裝啟動程式後系統會預設提示你新建...

使用tornado實現使用者認證

關於使用者的登入狀態,一部分的應用程式是採用session實現的。http是乙個無狀態協議,使用者的每次請求都是相互獨立的,http本身意識不到使用者是否登入。很多web框架選擇將session存放在cookies中,本節我們也是這樣實現 import tornado.ioloop import t...

使用NIO實現多人聊天

基於nio實現多人模擬聊天視窗,首先要了解,nio元件,serversocketchannel socketchannel selector selectorkey。了解了他們各自作用以及關係,多人聊天系統很容易理解實現,這裡不在介紹,自行了解 初始化服務端servesocketchannel 連線...