【发布时间】:2021-07-16 18:18:32
【问题描述】:
使用 websockets 时,如何将参数从浏览器传递到服务器端? 当浏览器发出 WS 请求时,我想从服务器返回 Hello。应从客户端传递。
JavaScript 在浏览器中运行。
var socket = new WebSocket('ws://<IP>:80/ws/hello/');
socket.onmessage = function(event){
var data = JSON.parse(event.data);
console.log(data);
}
routing.py
from django.urls import path
from .consumers import *
ws_urlpatterns = [
path('ws/hello/', Hello.as_asgi())
]
消费者.py
from channels.generic.websocket import WebsocketConsumer
class Hello(WebsocketConsumer):
def connect(self):
self.accept()
self.send(json.dumps({'message':"Hello, <NAME>!"}))
如何将 NAME 替换为客户的姓名?
我可以在 JavaScript 代码中使用
var socket = new WebSocket('ws://<IP>:80/ws/hello/?<NAME>');
当我这样做时,如何将名称传递给 consumer.py 中的 Hello 类,我应该在 routing.py 中添加一些特殊的东西吗?
【问题讨论】:
标签: javascript python django websocket