【发布时间】:2016-07-12 15:52:20
【问题描述】:
我希望在 Azure 中构建一个应用程序,它将充当 TCP 侦听器,在指定端口上接收 TCP 消息流,然后将信息添加到数据库中。传入的 TCP 通信将使用证书进行保护。
我正在考虑以下选项:
云服务工作者角色
这绝对看起来会work。然而,这意味着我必须使用云服务,而我错过了应用服务提供的功能和简单性。云服务documentation还专门介绍了如何打开需要的TCP端口。
应用服务
在逻辑应用程序(首选)中,但这似乎本身并不支持 TCP 侦听器,因此我希望构建一个自定义 API 应用程序。或者,我可以创建一个 Web 作业。
但是我不确定这种方法是否有效,我有以下问题:
- 能否在应用服务上公开任意 TCP 端口?
- 虽然云服务文档专门描述了如何执行此操作,但我找不到与应用服务类似的任何内容。因此,要么不需要配置,要么应用服务内无法进行 TCP 通信。
- 我可以在逻辑应用程序、API 应用程序或 Web 作业中构建 TCP 侦听器吗? Azure 的体系结构是否支持 TCP 侦听器所需的行为?
我可以在 Azure 应用服务中托管 TCP 侦听器吗?
【问题讨论】:
-
你能通过 HTTP 完成这项工作吗?所有这些担忧都会烟消云散。
-
遗憾的是,TCP 是另一端应用程序的要求。
-
那么请注意,MSDN TCP 教程真的很糟糕。特别是msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx 太可怕了。编写套接字代码也很困难。如果您无法认识到本教程不好,这意味着您非常缺乏经验,并且会更加困难。只是警告你。
-
不管该示例中的代码质量如何,重要的是它是可以做到的。目前对托管更感兴趣。
-
@DavidMakogon,这是否意味着所有这些东西都是可能的?例如;云服务文档专门描述了如何打开 TCP 端口,而我找不到任何类似的应用服务。这意味着不需要相同的配置,或者 TCP 侦听器不是应用服务的可能配置。我已经改写以缩小问题的范围,我认为只是是/否的答案。
标签: azure tcp azure-webjobs azure-cloud-services azure-logic-apps