Xamarin Forms:我该如何实现WebSockets?

8
我们希望实时将数据从客户端传输到服务器,因此我们决定使用WebSockets。但在Xamarin.Forms中找到合适的WebSocket库却出奇地困难。最佳匹配是“WebSocket4Net”,因为它直接在Xamarin的主页上推荐。然而,我无法安装这个库,因为它仅支持.NET版本4.0及以下(我们使用的是4.5)。每当我尝试将我的PCLs的目标框架从v4.5更改为v4.0时,就会出现大量奇怪的错误,例如“找不到Windows.Input库”、“找不到ObservableCollection”等等。所以我们目前正在使用“WebSocket.Portable.Core”库,虽然缺少一些功能,但效果不错。但出于某种原因,我们只能接收一条消息。事件“MessageReceived”总是只被调用一次。有人听说过这样的WebSocket问题吗?也许是时候使用另一个库了,但我就是找不到一个?我也找不到任何关于如何在每个平台上本地实现WebSockets的解决方案。

您需要将System.Net作为一个库导入到您的项目中,才能使它正常工作。 - jacob
只是为了确保我们在这里谈论的是同一件事。Xamarin中的PCLs是缩小的PCLs,因此并非在其他系统上运行的所有内容都适用于此处。我确实有对system.net.http.extensions和system.net.http.primitives的引用,没有其他选项。当我单击添加引用时,它会声明“已引用所有框架”。 - Shanakor
哦,奇怪;你尝试将项目导入到Xamarin Studio中了吗?我想当你在Visual Studio中使用Xamarin库构建项目时,可能会出现一些烦人的冲突,即使用哪个.NET核心库。如果这不是一个选项,我会看看能否解决这个问题。 - jacob
它能在Xamarin Studio中工作吗?因为我习惯使用Visual Studio,所以我不想使用Xamarin Studio,我认为它比VS不发达得多,我需要安装它。 - Shanakor
能否请您提供一个示例作为答案?我认为这是解决方案,但我不知道如何在每个平台相关项目中分别实现一些逻辑,并在Xamarin Forms中重复使用它。如果您可以指出正确的方向或提供此情况的抽象示例,我会非常高兴。 - Shanakor
显示剩余9条评论
1个回答

3

我遇到了这个库,但出于某些原因,我无法使其与引用一起工作。 - Shanakor
无论如何,现在这已经不重要了,因为我们改用本地编码了。 - Shanakor
1
对于未来的观众,这个教程使用示例代码在XF中实现了WebSockets.Pcl。 - mmacneil007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接