问题标签 [sente]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
377 浏览

session - 为什么 Sente 的 ring-req 有 cookie 而没有 session?

我正在使用 Sente 库通过 websockets 进行通信。通信已经开始,但会话似乎丢失了。我正在像这样设置 Sente:

当我从经过身份验证的客户端发送消息时,我得到以下输出:

处理程序非常简单,设置如下:

middleware/wrap-base 包含会话处理,它看起来像这样:

这适用于 AJAX 请求。我什至尝试在会话中设置 :uid 以及在用户登录在客户端中启动通道,但没有改变会话保持为空的事实。

0 投票
1 回答
116 浏览

clojure - Sente 可以在仅服务器配置中使用吗?

我正在寻找用 Clojure 编写的新版本替换现有的基于 Websocket 的服务器。看起来Sente图书馆可能是一个合适的选择。然而,我不清楚的一件事是,Sente 在多大程度上依赖私有内部协议进行操作。

就我而言,我有一个使用 JSON-over-websockets 的现有服务器和客户端,我想在修改任何客户端代码的情况下替换服务器。Sente 似乎对客户端请求的性质有很多特定的期望——例如,它期望客户端指定一个client-id参数并接受:chsk/handshake来自服务器的消息。

我的用例是否完全超出了 Sente 所针对的设计空间?如果是这样,是否有更合适的 Clojure 的 websockets 的不那么自以为是的实现?

0 投票
2 回答
162 浏览

clojure - 全栈 Clojure:如何在开发过程中同时获取浏览器 REPL 和服务器 REPL

我正在开发我的第一个全栈 Clojure 应用程序。我已经设法在 Linux Mint 中正常工作:

  • 莱宁根
  • figwheel + garden[auto] = 带有热代码和 CSS 重载的交互式 SPA 开发
  • leiningen REPL for Server with rebel-readline,在 REPL 启动服务器,并将 SPA 提供给浏览器
  • leiningen uberjar 编译,jar 文件运行,SPA 由服务器服务

我不知道该怎么做是设置一个开发环境,允许我同时拥有一个服务器 REPL 和一个 SPA REPL,这样我就可以集成 sente 以支持 websocket 并监控重新构建应用程序- SPA REPL 中的数据库状态。我想,理想情况下,我想让 figwheel + gargen[auto] 与 SPA 一起运行,通过 sente websocket 与服务器通信。

0 投票
0 回答
48 浏览

clojure - 更新 sente-boot 时的 http-kit 依赖问题

我更新的 build.boot 文件可能有问题:https ://github.com/laforge49/sente-boot/blob/master/build.boot (在后端太久了!)

我试过改变 clojure 和 clojurescript 的版本。以前我没有找到RT类,所以我至少取得了一些进展。

这是我的依赖项:

我收到此错误:

0 投票
1 回答
254 浏览

websocket - 带有 Sente 403 错误的 Clojurescript Websockets

我正在尝试从本地主机上的两个不同端口设置 Web 套接字连接。我正在使用 Sente 和 Immutant。我有以下内容,但在尝试连接时返回 403 禁止

服务器.clj

这不会引发任何错误,并且“/”路由会正确显示。

客户端.cljs

这会在尝试连接时引发 403 错误。我不知道它为什么会这样,我已经看了一段时间了,但我觉得很短。

0 投票
2 回答
148 浏览

websocket - 在 clojure 中使用 sente packers.transit/get-transit-packer 时出现无效事件“~#chsk/handshake”

使用 sente 时出现错误,导致将信息从客户端发送到服务器时失败,反之亦然。问题似乎是握手失败并出现错误

连续的ws/ping也失败,同样的错误,但有额外的信息,

可能是什么问题,我的代码似乎没问题,并遵循 sente.xml 中的默认示例

预期行为:

Sente 将连接,我将能够send-fn成功地在服务器和客户端之间调用和发送消息。

编辑:按照评论中的建议添加代码:

在客户端:

编辑,加法

我注意到该错误仅在我使用打包器时存在,(packers.transit/get-transit-packer)而不是:edn

0 投票
1 回答
83 浏览

ajax - 通过 sente web-socket 通道对应该是单个请求的不间断请求

目标是允许某人实时更新在线考试的状态。(即,按激活查理的考试,更改查理斯屏幕以允许他开始参加考试。监考人之间的关系是一个监考人对许多考试。

目前,我们正在使用 sente 成功激活考试,但是一旦我们单击(激活考试)按钮,它就会继续通过路由“/chsk”一遍又一遍地发送请求。(值得称赞的是,它非常快。)在遇到以下错误之前,它成功发送了许多(10+)个这样的请求。我们认为问题出在中间件上,但是在调整包装格式以处理 websocket 请求(以及通过“/chsk”路由发送的请求之后,我们仍然收到错误。我认为问题不在于中间件,因为信息第一次通过就好了,并按预期激活了考试。我不知道为什么 sente 发送的请求不止一个。sente 正在为我们的目的工作,

我们如何确保从后端只发送一次请求?

(问题) 我一激活考试就可以冻结它,以表明 web-socket 确实做了我们想要它做的事情。

在发出无休止的请求后立即浏览器崩溃。

REPL 中的错误

(客户端)

(服务器端)

(激活考试)

(路线)

*注意:一旦注册考试,我们就会启动客户端路由器,并使用考试的 ID 作为前端通道的用户 ID。