将参数传递给 Django 中的 websocket
Pass arguments to websocket in Django
使用 websockets 时,如何从浏览器向服务器端传递参数?
我想 return 你好,当浏览器发出 WS 请求时来自服务器。应从客户端传递。
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())
]
consumers.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>');
当我这样做时,如何将名称传递给 consumers.py 中的 Hello class 以及我是否应该在 routing.py 中添加一些特殊的东西?
要将数据发送到 websocket 服务器,您要使用 socket.send('string to send')
无需编辑 websocket 连接 URI。
要更改 NAME,只需将字符串的该部分设为 python 变量,然后将该变量的值更改为您想要的值即可。
使用 websockets 时,如何从浏览器向服务器端传递参数? 我想 return 你好,当浏览器发出 WS 请求时来自服务器。应从客户端传递。
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())
]
consumers.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>');
当我这样做时,如何将名称传递给 consumers.py 中的 Hello class 以及我是否应该在 routing.py 中添加一些特殊的东西?
要将数据发送到 websocket 服务器,您要使用 socket.send('string to send')
无需编辑 websocket 连接 URI。
要更改 NAME,只需将字符串的该部分设为 python 变量,然后将该变量的值更改为您想要的值即可。