我正在开发一个需要实时双向服务器/客户端消息传递的iOS应用程序。
我正在尝试使用WebSocket++在AWS EC2上开发WebSocket服务器应用程序。必须使用c++,因为这是我在服务器端唯一知道的语言。问题是我是服务器端开发的新手。我有两个非常基本的问题:
1,我需要设置一个HTTP服务器像apache/nginx为了得到websocket运行?也就是说,websocket应用程序可以独立生存吗?
2,我现在已经设置了一个nginx服务器,如果它是必须的,是否有任何资源,我可以参考使nginx &Websocket一起工作好吗?
-
不,你不需要一个Web服务器,一个(反向)Web代理或任何东西让你的c++ WebSocket服务器与WebSocket客户端通信。
-
Nginx(作为HAproxy)支持反向代理WebSocket。这在某些情况下是有意义的,比如您希望在代理端终止TLS并将普通WebSocket转发到后端服务器,或者您希望将传入的WebSocket连接负载均衡到多个后端节点。然而,如前所述,这不是必需的。
- 不,你不需要,websocket和socket对于HTTP服务器是两个不同的东西。
- 同样的问题,同样的答案,又不是;-)
HTTP服务器是用于HTTP协议的,而没有为websocket定义协议,你必须自己定义它,通常通过发送/接收Json消息(每一方(服务器和客户端)知道如何读/写的字符流)。websocket的目标是通过HTML5为javascript提供一种简单、轻松和快速的方式来通过套接字进行通信,如果没有websocket,你必须通过web服务来实现,在这种情况下,你需要一个http服务器。使用websocket,你可以利用html标签和javascript创建一个html文件,javascript使用websocket的客户端与c++/websocket服务器程序通信,你甚至不需要一个web服务器,在这种情况下,你有一个"桌面web应用程序"!(这里的web术语只是因为你使用html标签)
祝你好运,欢迎来到精彩的亚洲世界!