Fleck websocket 实现问题。无法使用套接字。发送

Posted

技术标签:

【中文标题】Fleck websocket 实现问题。无法使用套接字。发送【英文标题】:Fleck websocket implementation issue. Unable to use socket.Send 【发布时间】:2018-05-03 06:53:32 【问题描述】:

我目前正在尝试使用Fleck 实现Websockets,并在某种程度上将其与this BLE sample 合并。 我的最终目标是将接收到的心率数据从 BLE 设备传送到 websocket,然后统一接收。

我现在的问题是我无法在 BLE 示例代码中的 Visual Studio 中使用 Fleck socket.Send(message) 函数。

当我输入它时,它带有红色下划线并出现错误 “对类型'Task'的引用声称它是在'System.Runtime'中定义的,但找不到它。”强>

总的来说,我对 C#、Websockets 和 Visual Studio 还是很陌生。

我所做的是在 Visual Studio 中引用 Fleck.dll。唯一有效的是 Fleck/bin/Debug/netcoreapp2.0 中的 dll,然后声明了 WebSocketServer 等 socket.OnOpen()、onClose() 和 onMessage() 都可以工作。但是,它就是不喜欢 socket.Send。

我尝试手动添加对 System.Runtime.dll 的引用,但它表示该组件已被构建系统自动引用。

任何帮助将不胜感激!

【问题讨论】:

听起来你需要重建样本。它可能是使用您 PC 上的不同版本的 Net 构建的。我将首先检查示例的 exe 文件的时间戳。它位于项目的 bin 文件夹中。您还必须在运行示例之前启动该服务。我没有机会查看示例代码,所以我不确定服务是如何启动的。 @jdweng 我尝试重建样本无济于事。在运行示例之前启动服务是什么意思? BLE 示例可以自行工作,但问题在于无法使用它的 Fleck websocket 函数:( 我感觉这是因为 fleck 的目标是 NET4.0,而我的 BLE 示例可能没有使用该框架?我对这一切都很陌生,但是我将如何更改 BLE 示例中使用的框架? 构建后生成exe文件了吗?检查exe的日期。如果文件已更新,则您的项目正在使用示例。如果您需要同时运行 websocket 和示例,则代码无法单独运行。您有连接的两端(客户端和服务器)。服务器必须首先启动,这就是我首先要尝试的工作。您提供的链接分为两段:1)客户端2)服务器。您必须先让服务器段落工作。 @jdweng 是的,如果我只是重建原始 BLE 示例而不更改任何代码,则 BLE 示例 exe 会更新。但这不是我的问题——我正在尝试将 WebSockets 与 BLE 示例一起使用。我正在将代码添加到 BLE 示例中的 .cs 文件中,问题是当我编写代码时,Visual Studio 不喜欢我使用 socket.Send(message) 并抛出我在原始文件中声明的错误问题 - 所以我什至无法构建它,因为有一个错误! (此外,BLE 应用程序旨在成为服务器端) 【参考方案1】:

更新:仅通过在 Visual Studio 内的 Nuget 包管理器中更新 NET 核心通用 Windows 平台来修复它。它使用的是过时的版本。

【讨论】:

以上是关于Fleck websocket 实现问题。无法使用套接字。发送的主要内容,如果未能解决你的问题,请参考以下文章

Fleck websocket官方事例

WebSocket 后备服务器端

Unity使用webSocket与服务器通信——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

斑点 WebSockets

在 C# 中使用安全的 websocket

C# - 使用 feck 的 TLS / SSL Websockets