xamarin.ios - 将 Socket MvvmCross 包含在 PCL 中的最佳方式

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

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

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

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

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

你有什么建议?

谢谢

最佳答案

I thought may be MvvmCross Plugin is the way to go

是的,这正是插件设计的目的。

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

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

  • 处理原始套接字连接和 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 代码。

关于xamarin.ios - 将 Socket MvvmCross 包含在 PCL 中的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15561980/

相关文章:

c# - 如何从 NSNumber 转换为 .NET 对象

iphone - Monotouch打开文档-UIDocumentInterationController

Xamarin iOS 安装失败

c# - 如何在 Windows RT 中发送击键

android - MvvmCross - 尝试使用 Fragments 和最新的支持库导致链接问题

c# - 更改 SearchView 文本颜色 Xamarin.Android

c# - 如何在单击按钮时发送远程通知? Xamarin.Android C#

xamarin.ios - PanGestureRecognizer 的区域有限

c# - 在 WinRT 中使用 MVVM Light Toolkit 填充文本框的进度条

c# - 防止 FlipView 滚动