websocket簡單實現聊天

2022-05-02 17:42:09 字數 2919 閱讀 4605

1.多人聊天

from geventwebsocket.handler import websockethandler  #

請求處理wsgi http

from geventwebsocket.server import wsgiserver #

替換flask原來的wsgi服務

from geventwebsocket.websocket import websocket #

語法提示

from flask import

flask, render_template, request

)socket_dict ={}

"/ws")

defmy_ws():

ws_socket = request.environ.get("

wsgi.websocket

")#type:websocket

socket_dict[ws_socket] = ws_socket #

可以使用使用者名稱,使用動態路由引數傳username

print

(socket_dict)

while

true:

msg =ws_socket.receive()

print

(msg)

for ksocket,vscoket in

socket_dict.items():

if ksocket ==ws_socket:

continue

vscoket.send(msg)

"/wechat")

defwechat():

return render_template("

測試用.html")

#websockethandler既支援websocket請求,也支援http請求

wsgi啟動服務

"en

">"

content_list

" style="

overflow-y: auto

">

暱稱:"

text

" id="

username

">

"login()

">登入聊天室

"text

" id="

content

">

"send_msg()

">傳送訊息

2.一對一聊天

import

json

from geventwebsocket.handler import websockethandler #

請求處理wsgi http

from geventwebsocket.server import wsgiserver #

替換flask原來的wsgi服務

from geventwebsocket.websocket import websocket #

語法提示

from flask import

flask,render_template,request

)socket_dict ={}

"/ws/")

defmy_ws(username):

#獲取鏈結位址

ws_socket = request.environ.get("

wsgi.websocket

") #

type:websocket

socket_dict[username] =ws_socket

while

true:

msg = ws_socket.receive() #

接收瀏覽器發來的資訊

msg_dict = json.loads(msg) #

將資訊反序列化,是字典

receiver = msg_dict.get("

receiver

") #

獲取字典中接收人的名字

receiver_socket = socket_dict.get(receiver) #

從字典中找到接收人名字對應的鏈結位址

receiver_socket.send(msg) #

向接收人的鏈結位址傳送資訊

/wechat")

defwechat():

return render_template("

測試用.html")

#websockethandler既支援websocket請求,也支援http請求

wsgi啟動服務

"en

">"

content_list

" style="

overflow-y: auto

">

暱稱:"

text

" id="

username

">

"login()

">登入聊天室給"

text

" id="

receiver

">傳送"

text

" id="

content

">

"send_msg()

">傳送訊息

websocket實現簡單聊天程式

先載入所需要的通訊模組 建立使用者列表和訊息列表 var person var history 繫結並監聽80埠 客戶端連線成功後,觸發響應事件connection,完成要繫結的事件並實現客戶端出發的事件 io.sockets.on connection function socket obj.co...

WebSocket實現簡單聊天室

看了之前的文章,想必大家對websocket的原理已經有了乙個深入的理解,這一篇文章我們來看一下具體該如何去使用它。這裡,我用nodejs websocket實現乙個簡單的多人聊天室,從這個小案例中來學會使用websocket。nodejs websocket用法參見官方api 伺服器端 安裝引入n...

WebSocket 和 Golang 實現聊天功能

這個示例應用程式展示了如何使用 websocket,golang 和 jquery 建立乙個簡單的web聊天應用程式。這個示例的源 在 這個示例需要 golang 開發環境。該頁面描述如何安裝開發環境。go get gary.burd.info go websocket chat go websoc...