首先,我要感谢您(特别是 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/