【问题标题】:How to get a WebSocket server run on aws如何让 WebSocket 服务器在 aws 上运行
【发布时间】:2014-07-12 16:31:15
【问题描述】:

我正在开发一个需要实时双向服务器/客户端消息传递的 iOS 应用程序。

我正在尝试使用WebSocket++ 在 AWS EC2 上开发 WebSocket 服务器应用程序。必须使用 C++,因为这是我在服务器端知道的唯一语言。 问题是我是服务器端开发的新手。我有 2 个非常基本的问题:

1,为了让 websocket 运行,我是否需要设置一个像 apache/nginx 这样的 HTTP 服务器? 也就是websocket app可以单独独立存在吗?

2,我现在已经设置了一个 nginx 服务器,以防万一,有什么资源可以参考让 nginx 和 websocket 一起工作吗?

【问题讨论】:

    标签: c++ ios nginx websocket websocket++


    【解决方案1】:
    1. 不,您不需要 Web 服务器、(反向)Web 代理或任何东西来让您的 C++ WebSocket 服务器与 WebSocket 客户端通信。

    2. Nginx(作为 HAproxy)支持反向代理 WebSocket。这在某些情况下是有意义的,例如您想在代理上终止 TLS 并将纯 WebSocket 转发到您的后端服务器,或者您希望将传入的 WebSocket 连接负载平衡到多个后端节点。但是,如上所述,这不是必需的。

    【讨论】:

    • 那么当我尝试连接到 websocket 服务器时,如何指定 URL?我看到一个这样的: wss://echo.websocket.org 。那么是 ws://MY_DOMAIN:MY_PORT 吗?类似 ws://88.88.88.88:9002
    • ws(和wss)方案用于在浏览器上运行的 JavaScript。当您从浏览器连接时,请使用ws://MYHOST:MYPORT/MYPATH(注意路径..您可以在同一主机/端口上的不同路径上运行不同的 WS 端点)。当您在 WS 中使用标准端口 (80/443) 时,您可以省略该端口。从非浏览器客户端连接时,只需通过 TCP 连接到位于 MYPORT 的 MYHOST。
    【解决方案2】:
    1. 不,你不知道,用于 HTTP 服务器的 websocket 和套接字是两个不同的东西。
      HTTP 服务器用于 HTTP 协议,而没有为 websocket 定义协议,您通常必须通过发送/接收 Json 消息(每一方(服务器和客户端)都知道的字符流)来自己定义它读/写)。
      websocket 的目标是通过 HTML5 为 javascript 提供一种通过套接字进行通信的简单、轻便和快速的方式,如果没有 websocket,您必须使用 web 服务来做到这一点,在这种情况下,您需要一个 http 服务器。
      使用 websocket,您可以利用 html 标签和 javascript 创建一个 html 文件,javascript 使用 websocket 的客户端与 C++/websocket 服务器程序进行通信,您甚至不需要 web 服务器,在这种情况下,您有一个“桌面 web 应用程序” “! (这里的web术语只是因为你使用了html标签)
    2. 同样的问题,同样的答案,没有了 ;-)

    祝你好运,欢迎来到 asio 的精彩世界!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-22
      • 2011-05-06
      • 2023-02-13
      • 2012-01-18
      • 2021-06-06
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多