Eli*_*ita 5 javascript c++ websocket
关于uWebSockets有一些我不明白的地方,但主要是, uWebSockets 是否可以与普通的 WebSockets 一起使用,或者只是借用名称?这几天我一直在摸不着头脑,我不知道我是否做错了什么,或者我只是愚蠢。
我已经用 C++ 制作了一个最低限度的服务器,据我所知,它可以正确启动 -
#include <iostream>
#include <uWS\uWS.h>
int main() {
uWS::Hub hub;
hub.onConnection([](uWS::WebSocket<uWS::SERVER> *ws, uWS::HttpRequest req) {
std::cout << "A client connected" << std::endl;
}
);
if (hub.listen(13049)) {
std::cout << "Listening on port 13049" << std::endl;
hub.run();
}
}
Run Code Online (Sandbox Code Playgroud)
以及一个基本的 JavaScript 客户端 -
var ws = new WebSocket("ws://127.0.0.1:13049");
ws.onopen = function(event) {
console.log("Connected");
};
Run Code Online (Sandbox Code Playgroud)
所以我的问题。为什么这个连接不上?
找到答案了!
hub.listen("0.0.0.0", 13049)
我意识到我只能使用本地主机连接到服务器,但我不明白为什么。在查看了其他一些WebSocket文章后,我发现了这个问题。这是因为,默认情况下,服务器仅尝试接受来自本地主机的连接。我不知道为什么会这样,但你必须手动告诉它你想听每个人的意见。
为此,hub.listen(13049)我将不只是接受 localhost,而是将hub.listen("0.0.0.0", 13049). “0.0.0.0”是“任何地址”的一种表达方式。这解决了问题并允许我从任何 WebSocket 正常连接。
| 归档时间: |
|
| 查看次数: |
3216 次 |
| 最近记录: |