我试图将Django通道使用者连接到一个HTMX ext-ws元素,但是我不能更进一步。
class MessageConsumer(WebsocketConsumer):
def connect(self):
self.accept()
print("connect")
#self.send(
# "type": "websocket.send",
# "text": "..."
#)...
<head>
...
<script src="{% static 'common/js/htmx/htmx.min.js' %}" defer></script>
<script src="{% static 'common/js/htmx/ext/ws.js' %}" defer></script>
...
</head>
...HTMX.js和ws.js将在客户端浏览器上正确加载。
<div id="messages-container"
hx-ws="connect:/ws/messages/"
{# hx-ext="ws" ws-connect="/ws/messages/" does not work at all #}
>
<div id="message"></div>
</div>如果我使用旧的HTMX-内置hx-ws方法,至少websocket连接。但是我无法向HTMX元素发送消息(我认为应该替换#message div )。
如果我使用新样式(HTMX扩展)语法(hx-ext="ws" ws-connect...)
谁能给我指明正确的方向吗?
发布于 2022-07-07 21:37:37
根据文档,还需要将hx-swap-oob="true"属性包含到从websocket发送回来的html中:
参见htmx:https://github.com/bigskysoftware/htmx/blob/master/test/servers/ws/server.go#L24中的示例
在使用插件版本时,对我起作用的是从htmx相关的脚本标记中移除延迟属性。不过,不知道为什么包括延期会导致这个问题。
更新:
一个GH问题已经被OP:https://github.com/bigskysoftware/htmx/issues/957打开。
https://stackoverflow.com/questions/72875063
复制相似问题