在匆忙之中,是否可能通过RPC从服务器调用客户端代码?

4

匆忙中, 是否可能像从客户端调用服务器端代码一样,通过RPC从服务器端调用客户端代码呢?例如,向所有参与者广播某人在聊天室中输入消息的消息。

这里 我看到一个类似的例子被实现了,我理解的方式是——使用类似长轮询的技术;客户端请求,服务器阻塞发送响应直到有响应可以发送;然后客户端再次请求,如此往复。

但是不可能只是在没有客户端请求的情况下简单地发送一些东西吗?


我会将通信层抽象出来,以代数方式建模双向通信,这种方式不关心它是在内存中还是跨越HTTP障碍,也不关心Haskell-JS障碍。然后,您只需为此代数编写一个“解释器”,选择适当的通信实现,例如长轮询。 Haste 应该足够强大;如果不行,可以使用 GHCJS。 - Erik Kaplun
我理解你的评论是关于服务器和客户端之间的通用通信层抽象,是吗?因为如果是这样的话,那么这可能有意义。但是,目前我正在熟悉Haste,它已经在WebSockets之上实现了一层。而WebSockets可以全双工传输,这意味着服务器应该能够向客户端发送数据,但我看不到如何使用Haste提供的API来实现这一点,这就是我的最初问题。 - Wizek
是的,我的评论相当高层次。 - Erik Kaplun
1个回答

1

到目前为止,我从未使用过它,但是可以看一下html5 web-sockets。

这提供了全双工通信的方式,意味着您的客户端可以启动与服务器之间的通信,反之亦然。因此,客户端不再需要每秒轮询以查看服务器端是否有消息可用。


2
感谢您的输入!是的,我已经在使用一个基于WebSockets构建的库。请参阅我的此评论以获取更多详细信息:https://dev59.com/gZPea4cB1Zd3GeqP-x3u?noredirect=1#comment57427947_34843524 - Wizek
不客气。我看到我们的消息互相交叉了。关于 Haste 中套接字通信,我无法为您提供帮助。希望您能尽快找到答案! - user1983507

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接