您当然可以使用HTTP来实现这一点,但是对于实时通信,最好的选择是使用websockets。
原始套接字(又名TCP )不是W3C标准的一部分。即使有些浏览器有实施,我还是建议您避免使用它们,除非您不关心用特定的浏览器锁定应用程序。
一般来说,使用Websockets将是您的最佳选择,它们提供与原始套接字相同的性能,并且更易于从JS中使用。不幸的是,使用C++服务器可能要复杂得多,因为您的服务器必须实现协议,所以您可以在internet上找到一些实现,比如这 one。
或者,如果您希望与客户机/服务器进行更简单的集成,可以尝试使用Node.js来实现服务器逻辑,并使用Socket.io库来处理通信,这也将优雅地处理不兼容的浏览器。请注意,Socket.io 使用的是不同的 协议,所以如果您想避免做大量额外的工作,我不建议尝试将它与当前的C++服务器一起使用。
总结,总结
原始(TCP)套接字
Pros:更易于与当前的C++服务器集成Cons:浏览器支持不是一个(web)标准,它需要更多的同步、通信等工作。Websockets
Pros:性能与TCP套接字相当,更易于实现客户端。Cons:您可能需要在服务器实现上做更多的工作我个人的建议是在可能的情况下避免TCP套接字,并坚持这些标准。
编辑:显然,TCP套接字威力最终成为了W3C标准,API仍然是一个草案(而且是最近的),所以我仍然建议不要使用它们(最新的Chrome有一个实验性的实现)。