我正在尝试编写一个c++ websocket服务器,并让浏览器/chrome客户端通过websocket连接,用于多人游戏。我使用的websocket c++库是websocketpp或websocket++。我写了一个应用程序,允许客户端通过ws和localhost进行连接,但是当我为地址添加一个ip时,连接根本不会发生。现在我想我必须使用ssl和wss进行ip连接?我试过了,有一些连接活动,但是握手超时了。我是否会遇到跨领域的问题,或者我是否需要ssl?我是websockets的新手。问题可能出在我用openssl制作的ssl证书上吗?我可以发布代码,或者如果您熟悉做websockets的c++库,它是什么?这是一件可能做的事情吗?
发布于 2021-10-13 00:24:32
它不能通过ip连接可能有多种原因。
第一个是端口转发。在本地网络上,这不是必需的,但在远程网络上运行服务器时,必须进行端口转发。您只需运行您的服务器,然后使用一个简单的端口检查器(有许多网站)来查看是否可以建立连接。
另一个原因可能是如您所说的ssl。如果您在web主机上运行客户端,则该主机可能需要通过ssl/wss for websockets建立连接。如果您的服务器没有运行有效的ssl证书,那么这可能会阻止客户端连接到您的服务器。我知道示例Github pages需要服务器运行wss或服务器端有效的ssl证书才能建立客户端连接;但是,如果您为Github页面使用自定义域名,则可以禁用对ssl的需求。
为了获得有效的ssl证书,您需要为您的ip地址注册一个域,然后购买证书或使用来自zerossl或其他分销商的免费证书。
这是我写的一个game,它连接到一个c++服务器,我在我自己的机器上运行,它有自己的域和有效的SSL证书,客户端运行在github页面上,我已经注册了自定义域。
它基本上是多人扫雷,目标是定位旗帜而不是避开它们。
https://stackoverflow.com/questions/69548259
复制相似问题