gpt4 book ai didi

Purescript 铝热剂和 websockets

转载 作者:行者123 更新时间:2023-12-04 00:57:38 36 4
gpt4 key购买 nike

我正在尝试使用 purescript-thermite 来构建一个使用 websockets 的应用程序。这个想法是应用程序使用 websockets 连接到一些服务器并实时更新 HTML 页面。但是,我找不到将其连接到铝热剂工作流程的方法。

我有一个由 renderperformAction 组成的 specrender 可以访问 dispatch 函数。但是,我需要在渲染元素之前启动 websockets(我可以将它放入例如 main 中),但是在消息到达时我需要理想地 dispatch 一个事件从外部到组件。最好的方法是什么?

最佳答案

您的期望是渲染您的组件,获取驱动程序函数的句柄,然后设置您的 websocket 连接并使用驱动程序函数提供更新。

但是,如果您出于某种原因需要首先设置 websocket 连接,那么您将需要使用一些技巧,可能涉及到 Ref 以在设置完成后保存驱动程序功能。这样,您需要在 Ref 更新之前手动验证您没有尝试调用驱动程序函数。

更高级的解决方案可能是将您的 websocket 协议(protocol)包装成协程的形式(参见 purescript-coroutines),并在类型中明确表示任何设置阶段:

type Connection = 
Aff MyEffects { initialData :: InitialData
, updateStream :: Producer (Aff MyEffects) UpdateMessage
}

这里,InitialData 代表您在设置时收到的数据,可能会传递给组件,而 UpdateMessage 代表您从服务器获取的增量更新,这将是传递给驱动函数。然后,您可以在 main 中连接所有这些。

关于Purescript 铝热剂和 websockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37287369/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com