将Socket MvvmCross与PCL结合使用的最佳方式

时间:2013-03-22 03:01:19

标签: xamarin.ios windows-runtime xamarin.android windows-phone mvvmcross

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

我有一个涉及套接字连接的应用案例,我想使用PCL for Android,WP7和iOs。

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

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

你有什么建议?

由于

1 个答案:

答案 0 :(得分:2)

  

我认为可能是MvvmCross Plugin是要走的路

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

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

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

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

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

    < / LI>

我认为套接字插件是一个非常常见的要求 - 所以如果你要通过开源解决这个问题,那么你可能会找到一些愿意贡献的人......或者,如果你要关闭源代码,那么你可能会发现一些客户。


虽然在这个阶段没有人开源 IP网络套接字,但Sphero项目确实包含了一个蓝牙套接字示例 - 虽然不是它所传达的方式完全具有网络效率。

此蓝牙套接字代码在https://github.com/slodge/BallControl/tree/master/Cirrious.Sphero.WorkBench/Plugins/Sphero

的Ms-PL内开源

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

凭借后见之明(一件好事)的好处,如果我再次实施,那么我将实施:

  • 一个蓝牙串口插件,展示蓝牙扫描,连接和套接字流
  • 一个额外的PCL库,它使用该插件来驱动机器人 - 这可能被称为插件,但其中没有任何非PCL代码。