当前位置: 首页 > news >正文

化工原料东莞网站建设网站备案承诺书填写

化工原料东莞网站建设,网站备案承诺书填写,wordpress 图床 转移,网站建设会议纪要前面我们发送的大多数都是text类型的消息,对于text消息来说,后端处理出来要麻烦的多,那么我们可以不可以传递json格式的数据,对于前后端来说都比较友好,答案是肯定的,我们需要做下处理。 首先,…

前面我们发送的大多数都是text类型的消息,对于text消息来说,后端处理出来要麻烦的多,那么我们可以不可以传递json格式的数据,对于前后端来说都比较友好,答案是肯定的,我们需要做下处理。

首先,我们在websocket管理器中增加处理json格式消息的方法:

from typing import List, Dictfrom starlette.websockets import WebSocketclass ConnectionManager:def __init__(self):"""存放链接"""self.active_connections: List[Dict[str, WebSocket]] = []async def connect(self, user: str, ws: WebSocket):"""链接"""await ws.accept()self.active_connections.append({"user": user, "ws": ws})async def disconnect(self, user: str, ws: WebSocket):"""断开链接,移除"""self.active_connections.remove({"user": user, "ws": ws})@staticmethodasync def send_personal_message(message: str, ws: WebSocket):"""发送所有人消息"""await ws.send_text(message)async def send_other_message(self, message: dict, user: str):"""发送个人消息"""for coon in self.active_connections:if coon["user"] == user:await coon["ws"].send_json(message)async def broadcast(self, data: str):"""广播"""for conn in self.active_connections:await conn["ws"].send_text(data)async def broadcast_json(self, data: dict):"""广播json数据"""for conn in self.active_connections:await conn["ws"].send_json(data)

接口中如何接收json数据呢,新增接口如下:

@app.websocket("/ws/json/{user}")
async def websocket_json_data(websocket: WebSocket,user: str,cookie_or_token: str = Depends(get_cookie_or_token)
):"""发送接收json数据(前面一对一接口其实就是发送的json数据)"""await ws_manager.connect(user, websocket)try:while True:data = await websocket.receive_json()send_user = data["username"]if send_user:await ws_manager.send_other_message(data, send_user)else:await ws_manager.broadcast_json(data)except WebSocketDisconnect as e:await ws_manager.disconnect(user, websocket)

前端也要相对应的修改:
 

<!DOCTYPE html>
<html>
<head><title>Chat</title>
</head>
<body>
<h1>WebSocket 聊天</h1>
<form action="" onsubmit="sendMessage(event)"><input type="text" id="messageText" autocomplete="off"/><input type="text" id="username" autocomplete="off"/><button>Send</button>
</form>
<button onclick="logout()">退出</button>
<ul id='messages'>
</ul>
<script>var  token=window.localStorage.getItem("token")if (token==null ){window.location.href="/login"}var ws = new WebSocket("ws://localhost:8000/ws/json/"+token+"?token="+token);ws.onmessage = function (event) {var messages = document.getElementById('messages')var message = document.createElement('li')let receiveJson = JSON.parse(event.data);console.log(receiveJson)var content = document.createTextNode(receiveJson.username+"说:"+receiveJson.messageText)message.appendChild(content)messages.appendChild(message)};function sendMessage(event) {var input = document.getElementById("messageText")var username = document.getElementById("username")let message = {messageText: input.value, username:username.value};let messageJson = JSON.stringify(message);ws.send(messageJson);// input.value = ''event.preventDefault()}function logout() {window.localStorage.removeItem("token")window.location.href='/login'}
</script></body></html>

部署看效果,因为发送给后端的数据格式是前端拼的json,所以页面上只需要填文本即可:

 

http://www.yayakq.cn/news/270419/

相关文章:

  • 网站备案 超链接做彩票网站代理赚钱吗
  • 做网站建设的电话销售海南平台网站建设平台
  • 网站建设只是有哪个网站可以学做面条开面馆
  • 企业网站属于下面哪种媒体类型在线制作公司网站
  • .net 响应式网站盐城哪里帮助公司建网址
  • 保定网站 优重庆外贸网站建设公司
  • 开发网站找什么公司吗wordpress博客费用
  • 17网站一起做网店如何下单思南县住房和城乡建设局网站
  • 深圳婚纱摄影网站建设找图做素材啥网站好
  • 公司网站是怎么样的浙江省城乡建设厅证书查询
  • 深圳市移动端网站建设公司网站如何建立
  • 长沙网站设计优刻wordpress 网站卡
  • 聊城做网站信息网站开发7个基本流程图
  • 网站编程教学上海做无创DNA医院网站
  • 网站建设怎么上传数据wordpress带会员的主题
  • 免费的行情网站ifind是常州百度网站排名
  • 手机网站焦点图二人世界视频免费
  • 织梦网站如何打通百度小程序图书馆网站建设研究
  • 网站不设置关键词描述深圳坪山住房和建设局网站
  • 6731官方网站下载动漫网站设计论文
  • 西部数码网站管理系统金点子创业项目
  • 网站策划专员所需知识注册公司怎么查询
  • 深圳做网站一个月多少钱网站建设 百度云盘
  • 电子商务安全问题 网站权限管理wordpress主题 dux1.8
  • 免费企业网站建设哪种马鞍山市建设银行网站
  • 信用中国 网站 支持建设高港区住房和城乡建设局网站
  • 做的网站为什么图片看不了昆山网站建设官网
  • 网站做优化好还是做推广好广西展厅设计公司
  • 券优惠网站如何做福田祥菱m2双排后双轮
  • 中国设计网站官网地址品牌营销传播