【问题标题】:How can I host a TCP Listener in Azure?如何在 Azure 中托管 TCP 侦听器?
【发布时间】: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


【解决方案1】:

云服务工作者角色

这看起来肯定会奏效。然而,这意味着我必须使用云服务,而我错过了应用服务提供的功能和简单性。云服务文档还专门介绍了如何打开所需的 TCP 端口。

绝对有效。

https://msdn.microsoft.com/en-us/library/azure/gg557553.aspx

ServiceDefinition.csdef中:

<Endpoints>
  <InputEndpoint name="RawTCP" protocol="tcp" port="54321" localPort="54321" />
</Endpoints> 

应用服务

在逻辑应用程序(首选)中,但这似乎并不原生支持 TCP 侦听器,因此我希望构建一个自定义 API 应用程序。或者,我可以创建一个 Web 作业。 ...

我可以在应用服务上公开任意 TCP 端口吗? ...

我可以在 Azure 应用服务中托管 TCP 侦听器吗?

不,不。只有 80/TCP 和 443/TCP 是公开的,唯一有效的协议是 HTTP。 您不能使用应用服务进行自定义侦听器。

查看此处列出的沙盒限制: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening

如果应用服务页面上未提及此限制,请随时在 Azure 文档中提出拉取请求。

Service Fabric 将是一个很酷的第三(或第一?)选项: https://azure.microsoft.com/en-us/services/service-fabric/

【讨论】:

  • 这对 WebSocket 意味着什么?我假设 WebJobs 支持它。
【解决方案2】:

我提出了支持请求并与 Microsoft 确认了这一点。

【在应用服务中】Azure 不支持自定义端口,只支持 支持http协议。这两个原因拒绝使用 TCP 监听器。

还进一步协作信息这个问题; Can I open ports on Azure Websites?

【讨论】:

    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 2016-07-13
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多