【问题标题】:Discriminating unions between remote actors in F# Akka.Net在 F# Akka.Net 中区分远程参与者之间的联合
【发布时间】:2021-09-25 04:34:21
【问题描述】:

我在本地机器上有一个演员,在远程机器上有一个演员。是否可以使用远程参与者与本地参与者的区分联合进行模式匹配。这是我正在尝试的,

远程演员:

  • 匹配味精

    | Task1 消息 -> printf“完成”

    | Task2 消息 -> printf“完成”

本地演员:

  • 远程演员

我想像这样从本地演员向远程演员发送消息。但我无法从本地演员发送 Task1 类型。任何帮助都是可观的

提前致谢。

【问题讨论】:

  • 是什么特别阻止你这样发送它?

标签: f# akka.net f#-data


【解决方案1】:

Akka.NET v1.4 默认使用 Newtonsoft 的 JSON 序列化器,它不适用于可区分的联合。如果您切换到new Hyperion serializer,它应该可以正常工作。将以下内容添加到您的配置中:

akka {
  actor {
    serializers {
      hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
    }
    serialization-bindings {
      "System.Object" = hyperion
    }
  }
}

然后,您可以毫无问题地发送和接收受歧视的工会。 Hyperion 将成为 Akka.NET v1.5 中的默认序列化程序。

【讨论】:

  • 谢谢你成功了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 2011-11-12
  • 1970-01-01
相关资源
最近更新 更多