2

首先,我要感谢您(特别是 Stuart)为这个令人惊叹的框架 MvvmCross。

我有一个涉及套接字连接的应用案例,我想使用适用于 Android、WP7 和 iO 的 PCL。

不幸的是,PCL 子集不支持按原样使用套接字(我认为 NCL 仅支持 Microsoft 不同的框架)。

我认为可能是 MvvmCross 插件是要走的路,但仍然需要每个平台的插件实现(我的意思是 ...plugin.Droid、..plugin.WP7 等),而最后应该是相同的代码。

你有什么建议?

谢谢

4

1 回答 1

2

我想可能是 MvvmCross Plugin 是要走的路

是的,这正是插件设计的那种情况。

我当然会将其实现为套接字插件:

  • 插件的 PCL 部分将提供一个套接字接口,尽管它也可能在共享代码中包含一些共享基类“缓冲区复制”类型的功能。

  • 处理原始套接字连接和 IO 的平台特定套接字实现。

    这些平台插件的添加很可能会在几个平台实现之间使用大量文件链接——我希望有很多代码必须以这种方式共享。

我认为套接字插件将是一个相当普遍的需求——因此,如果您要通过开源解决这个问题,那么您可能会找到一些愿意的贡献者……或者,如果您要使用封闭源代码,那么您可能会找到一些客户。


虽然现阶段没有人开源IP 网络套接字实现,但 Sphero 项目确实包含了一个蓝牙套接字示例——尽管它的通信方式并不完全是网络高效的。

此蓝牙套接字代码在 Ms-PL 中开源,位于https://github.com/slodge/BallControl/tree/master/Cirrious.Sphero.WorkBench/Plugins/Sphero

此 Sphero 插件不公开 PCL Sphero-Socket级别的 API——而是在插件级别选择公开Sphero-Robot级别的 API。

事后看来(一件美妙的事情),如果我再次实现它,那么我将实现:

  • 一个蓝牙串口插件,暴露蓝牙扫描、连接和套接字流
  • 一个额外的 PCL 库,它使用插件来驱动机器人 - 这可能被称为插件,但其中没有任何非 PCL 代码。
于 2013-03-22T05:05:18.750 回答