Xamarin表单:如何实现WebSockets?

时间:2016-01-15 22:02:03

标签: xamarin websocket xamarin.ios xamarin.android xamarin.forms

我们希望实时将数据从客户端传输到服务器,因此我们决定使用WebSockets。

使用Xamarin.Forms很难找到合适的WebSocket库。

最佳匹配是" WebSocket4Net"因为它是在Xamarin的主页上直接提出的。但是我无法安装此库,因为它只支持最高版本为v4.0的.NET版本。 (我们正在使用v4.5)

每当我尝试将我的PCL的目标框架从v4.5更改为v4.0时,我会收到许多奇怪的错误,说明"无法找到Windows.Input库"," ObservableCollection无法找到"等。

所以我们目前正在使用这个库" WebSocket.Portable.Core"虽然缺乏一些功能,但仍然有效。但是出于某种原因,我们只能收到一条消息。事件" MessageReceived"总是只召唤一次。

有没有人听说过WebSockets存在这样的问题?也许是时候使用另一个图书馆,但我找不到一个?

我也找不到任何解决方案如何为每个平台本地实现WebSockets。

3 个答案:

答案 0 :(得分:2)

WebSockets.PCL具有针对每个平台的本机实现,并且已有详细记录

https://github.com/NVentimiglia/WebSockets.Pcl

答案 1 :(得分:0)

像WebSockets.PCL这样的库可以很快获得成功,但是它们本质上只是WebSocket客户端的包装,并且它们通常几乎没有提供任何功能。

在考虑 implementing a dependable client-side WebSocket solution for Xamarin apps 时,您需要考虑一些挑战:

  • 身份验证
  • 网络兼容性和后备传输
  • 设备电源管理和心跳
  • 连续处理重新连接
  • 可扩展性

答案 2 :(得分:-1)

您可以在KinderChat示例应用程序中看到我们如何使用WebSockets:

https://github.com/xamarin/KinderChat