gpt4 book ai didi

scala - Play Framework 2.2.0 [scala] - WebSocket.async 与 WebSocket.using[T]

转载 作者:行者123 更新时间:2023-12-04 17:53:30 25 4
gpt4 key购买 nike

似乎找不到任何关于此的文档,但看到一些在操作中使用 WebSocket.async 作为其返回类型的示例,以及其他使用 WebSocket.using[String] 的示例。

是否有关于何时使用哪个的文档?我了解 Websocket.using[String] 表示进出此操作的消息类型为字符串类型。那么使用 WebSocket.async 到底有什么区别?主要关心的是何时使用哪个以及为什么使用。

最佳答案

看看他们各自的签名:

def using[A](f: RequestHeader => (Iteratee[A, _], Enumerator[A]))(implicit frameFormatter: FrameFormatter[A]): WebSocket[A]
def async[A](f: RequestHeader => Future[(Iteratee[A, _], Enumerator[A])])(implicit frameFormatter: FrameFormatter[A]): WebSocket[A]

可能有点过分,让我们删除返回类型和隐式参数列表,因为它们是相同的:

def using[A](f: RequestHeader => (Iteratee[A, _], Enumerator[A]))
def async[A](f: RequestHeader => Future[(Iteratee[A, _], Enumerator[A])])

现在更容易发现差异。 async 接受的回调返回一个 Future,而 using 则不能。当您使用异步库时,async 很有用,例如Akka,向某个actor发送消息会产生一个Futureusing 应该与同步库一起使用。我希望这是有道理的。

关于scala - Play Framework 2.2.0 [scala] - WebSocket.async 与 WebSocket.using[T],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19322622/

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