我可以使用 mule 对象存储来持久化 HTTP 连接吗?

疯狂瑜伽士

我见过很多使用 Mule Object Store 存储事务数据的例子。但是我的问题是它可以用来存储像 Websockets 连接或服务器发送事件(SSe)连接之类的东西吗?

因为这些是长时间运行的连接。它们需要存储在某个地方以备以后在另一个事件进入时使用并且需要在同一连接上传输。存储此连接信息的最佳做法是什么。

显然,connection-id 可以用作 Key,而 Connection 的散列形式可以存储为 Value?这可行吗?有没有人可以指点我的例子?

jfriend00

webSocket 连接是一个活动对象,不能像简单的 JSON 对象那样持久化。它包含指向其实现内部的实际 TCP 套接字的指针。因此,您需要将其存储在某种内存和进程内存储或数据结构中。

由于听起来您已经有了一个使用 ID 访问它的简单密钥,因此我建议您使用一个Map或一个WeakMap对象。

let socketMap = new Map();

每当有新的套接字连接时:

// add new connection to the map
socketMap.set(id, socket);

任何时候套接字断开连接:

// remove disconnected socket from the map
socketMap.delete(id);

任何时候你需要获得一个特定的套接字:

let socket = socketMap.get(id);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

新的http连接器可以与Mule 3.6中的http:static-resource-handler一起使用吗?

我可以使用HTTP代替HTTPS来托管MVC客户端以与IdentityServer一起使用吗?

我可以使用distinctUntilKeyChanged来删除重复的对象吗?

我可以使用GZIP压缩HTTP请求吗?

我可以使用基于noSQL的文档来存储json对象吗?

我可以使用HTTP2 Server推送机制来更新已发送的资源吗?

我可以使用 AJAX 请求来像 reqular http 请求一样更新整个页面吗?

我可以使用花括号语法来连接XSL中文本节点的文本吗?

我可以使用std :: unique_lock来连接JNI的AttachCurrentThread和DetachCurrentThread吗?

我可以使用汇总功能(例如字符串连接)来“小计”吗?

我可以使用命令提示符来控制连接的设备吗?

我可以使用Aerospike作为持久层吗

我可以使用 for 循环来获得相同的结果吗?

我可以使用此列表来填充Arrayadapter吗?

我可以使用 AgensGraph 来迁移数据吗?

我可以使用重构来交换变量的类型吗?

我可以使用 for 循环来创建类吗?

我可以使用锁来确保指令顺序吗?

我可以使用按钮来清除画布吗?

我可以使用 NavigationController 来关闭屏幕移动吗?

我可以使用python来CSP吗?

我可以使用 SUMPRODUCT 来完成此操作吗?

我可以使用 <span> 来实现吗?

我可以使用类来更改 CSS 变量吗?

我可以使用模来反转输出线吗?

我可以使用assign复制对象的对象吗?

我可以使用我的交换内存来增加 Ubuntu 20.04 的存储吗?

我可以使用休眠条件调用存储过程吗?

Nexus站点存储库:我可以使用SCP吗?