在 F# 中区分远程参与者之间的联合 Akka.Net
Discriminating unions between remote actors in F# Akka.Net
我在本地机器上有一个演员,在远程机器上有一个演员。是否可以使用远程演员与本地演员的判别联合进行模式匹配。这是我正在尝试的,
远程演员:
匹配消息
|任务 1 消息 -> printf“完成”
| Task2 消息 -> printf“完成”
本地演员:
- 远程演员
我想像这样从本地演员向远程演员发送消息。但是我无法从本地演员发送 Task1 类型。任何帮助都是可观的
提前致谢。
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.
中的默认序列化程序
我在本地机器上有一个演员,在远程机器上有一个演员。是否可以使用远程演员与本地演员的判别联合进行模式匹配。这是我正在尝试的,
远程演员:
匹配消息
|任务 1 消息 -> printf“完成”
| Task2 消息 -> printf“完成”
本地演员:
- 远程演员
我想像这样从本地演员向远程演员发送消息。但是我无法从本地演员发送 Task1 类型。任何帮助都是可观的
提前致谢。
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.
中的默认序列化程序