我正在尝试使用purescript-thermite来构建一个使用websockets的应用程序.这个想法是应用程序使用websockets连接到某个服务器并实时更新HTML页面.但是,我找不到如何将其连接到thermite工作流程的方法.
我有一个spec由render和组成的performAction.在render访问的dispatch功能.但是,我需要在渲染元素之前启动websockets(我可能会把它放到例如main),但是在消息到达时,我需要理想地dispatch从外部向组件发送事件.最好的方法是什么?
期望是您将渲染组件,获取驱动程序函数的句柄,然后设置websocket连接并使用驱动程序函数来提供更新.
但是,如果由于某种原因需要首先设置websocket连接,那么您将需要使用一些技巧,可能需要在Ref设置完成后保存驱动程序功能.这样,您需要手动验证在Ref更新之前不要尝试调用驱动程序函数.
更高级的解决方案可能是以协程的形式包装您的websocket协议(请参阅purescript-coroutines),并在类型中明确表示任何设置阶段:
type Connection =
Aff MyEffects { initialData :: InitialData
, updateStream :: Producer (Aff MyEffects) UpdateMessage
}
Run Code Online (Sandbox Code Playgroud)
这里,InitialData表示您在设置时收到的数据,这些数据可能会传递给组件,并UpdateMessage表示来自服务器的增量更新,这些更新将传递给驱动程序函数.然后你可以将所有这些连接起来main.
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |