2016-11-06 56 views
0

我从未使用过RabbitMQ,并且不知道它是否适合我。所以我有一些问题。使用RabbitMQ C#和Elixir

我有一个C#.NET应用程序,另一方面我有一个elixir应用程序。

我想在它们之间交换数据,例如,elixir会要求C#.NET应用程序中的人员列表,并且它会返回 人员列表(列表)给elixir。

我会如何接收elixir中的数据?灵药中没有任何物品。

如果我将一个对象从C#.NET发送到elixir,我会在elixir中得到什么?

+1

在C#端创建Web服务,使Elixir从服务请求数据。它可以用JSON,XML,YML或任何常用的数据交换格式发送。我不熟悉Elixir,但肯定有办法处理数据。 – gretro

+0

当你问到一些特定的技术时,你的问题仍然存在很多问题。添加一些细节,你可能会得到更好的答案。 –

回答

1

灵药中没有任何对象。

仅仅因为在像C#这样的面向对象(OO)语言的意义上没有对象,函数式语言仍然具有用于数据集合的构造。在Elixir的情况下,三大记录,结构和地图。当你使用每个超出这个答案的范围。

我会如何接收elixir中的数据?

这完全取决于应用程序的语义以及您如何在每个应用程序中实际使用数据。例如,如果应用程序X需要向应用程序Y询问其信息的某个子集(可能是20-30岁之间的用户列表),则可以考虑设置某种可访问的Web终端应用程序Y可以过滤这些信息并返回JSON,然后应用程序X可以使用它并执行需要的任何操作。

您可能想要使用RabbitMQ或任何其他消息队列的原因的一个例子是,如果您想对事件源自的另一台机器上的事件进行某种处理。

如果我将一个对象从C#.NET发送到elixir,我会在elixir中得到什么?

C#不能直接对准Elixir。

0

除了Justin的回答,您可能还想研究Erlang Term Format这是Elixir与其他语言互操作的另一种选择。 ETF有一个实现C#here但我不知道图书馆的质量。

除了贾斯汀的建议,你还想不要发送一个“对象”,而是发送对象实例中的数据。而不是发送Person,然后尝试挑选Elixir方面的数据,发送离散呼叫中来自Person的数据 - e。 G。 Person.FirstName, Person.LastName等。您可以传递特定实例的数据,而不必传递整个对象。 ETF将帮助C#和Elixir之间的数据通信。即使您将数据填充到RabbitMQ队列中,您也可以将它作为离散数据片放在队列中,而不是“对象”。