asp.net - Web 应用程序中的 TCP 连接
问题描述
我真的需要你的建议。我有很多 TCP 客户端设备。Web 应用程序将在身份验证后被许多用户访问。我需要解决的问题是——
为这些客户端机器创建一个 TCP 侦听器,每个用户都应该访问它 - 我认为解决方案 - 在页面上创建一个 tcp 连接。加载页面后,每个用户都会从他们的设备(本地主机)创建一个新的 tcp 连接。这是可能的,因为每个用户的电脑都是不同的,所以它的连接将完全不同。但是这个解决方案不适用于问题 2。
机器每 30 秒广播一次数据。所以我的应用程序应该能够捕获该数据并在页面上进行更新。这是我认为的主要问题。
我知道网页上的实时数据更新可以使用 SignalR 完成。但是 SignalR 不直接与 TCP Client 机器连接。所以我想做的是——
第一 - 我尝试为 TCP 侦听器制作 WCF 服务。WCF 服务将从机器获取数据并保存到 signalR 将完成其工作的数据库中。但是每当我使用 wcf 服务时,我的系统就会挂起。所以我不知道这是否是正确的方法。
第二 - 我尝试将 Windows 服务创建为 tcp 侦听器。但我认为它不适用于 Web 应用程序。
坦率地说,我无法理解我应该为这个功能做什么。
从我这边 - 我只想要一个应用程序级别的 TCP 连接,它应该是持久的、独立于用户并且不应该在任何页面重新加载时关闭。每当该连接接收到数据时,它应该在每个用户的 Web 浏览器上进行更新,而无需重新加载。
我不能使用计时器。它应该是实时的。
根据我的发现和理解,TCP连接是与设备连接的,因此不能直接使用signalR。我们需要其他东西(比如服务)来使它与 signalR 一起工作。
所以最后,我该怎么办?我希望我足够清楚地说明我的问题。我只是想讨论一下,以便弄清楚我的疑问,并最终找到想要的结果。
编辑 1:
在 websocket 中,signalR... 通常客户端是指网络浏览器。设备(多媒体控制设备)可以成为类似于 signalR 的网络浏览器的客户端吗?
解决方案
推荐阅读
- java - “未使用@Test 注释或未包含”,我已尽力找到解决此问题的方法,但没有结果
- excel - VBA - 如果不满足其他子中的条件,如何退出主子
- javascript - 无法在从 React/redux 中的另一个 js 文件导入的 App.js 中加载函数
- textbox - 如何在 dm-script 中动态使用对话框文本框
- windows - 如何使用 CanvasControl 绘图会话在 Win2D 中旋转文本?
- javascript - 使用 material-ui 更改父级中的子组件样式
- node.js - 第一个 node.js 项目无法连接到 mongodb
- javascript - 在警告中打开 jQuery 手风琴面板
- c++ - VSCode“变体不是模板”,如何让vscode检测出来?
- cookies - SameSite Cookie 标头和 Websocket 不起作用