首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTMX websockets扩展不连接到Django通道

HTMX websockets扩展不连接到Django通道
EN

Stack Overflow用户
提问于 2022-07-05 20:14:31
回答 1查看 390关注 0票数 0

我试图将Django通道使用者连接到一个HTMX ext-ws元素,但是我不能更进一步。

代码语言:javascript
复制
class MessageConsumer(WebsocketConsumer):
    def connect(self):
        self.accept()
        print("connect")
        #self.send( 
        #    "type": "websocket.send",
        #    "text": "..."
        #)
代码语言:javascript
复制
...
<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将在客户端浏览器上正确加载。

代码语言:javascript
复制
<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...)

谁能给我指明正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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打开。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72875063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档