Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript websocket 301使用域但不直接使用ip_Javascript_Node.js_Websocket_Dns - Fatal编程技术网

Javascript websocket 301使用域但不直接使用ip

Javascript websocket 301使用域但不直接使用ip,javascript,node.js,websocket,dns,Javascript,Node.js,Websocket,Dns,我使用 const WebSocket = require('ws') const wss = new WebSocket.Server({ port: 8080 }); 当我尝试使用连接到服务器时 const connection = new WebSocket('ws://84.***.***.***:8080') // my ip adress 一切正常,没有错误,连接事件被触发,我可以发送消息。 如果我使用我的域名,例如 const connection = new WebSock

我使用

const WebSocket = require('ws')

const wss = new WebSocket.Server({ port: 8080 });
当我尝试使用连接到服务器时

const connection = new WebSocket('ws://84.***.***.***:8080') // my ip adress
一切正常,没有错误,连接事件被触发,我可以发送消息。
如果我使用我的域名,例如

const connection = new WebSocket('ws://sub.example.com:8080')
我得到这个错误:

WebSocket connection to 'ws://sub.example.com:8080/' failed: Error during WebSocket handshake: Unexpected response code: 301
我使用A记录将子域指向我的实际域(使用cloudflair,从namescape导入)。 维基百科告诉我

HTTP响应状态代码301永久移动用于永久重定向,这意味着应更新使用接收此响应的URL的当前链接或记录


有没有关于我做错了什么的想法?

这似乎是服务器问题,而不是代码问题,我不是专家,但我的理解是:

Arecord将一个名称指向一个ip,因此浏览器点击该名称,然后重定向到websocket服务器所在的ip

ws不能/不会跟踪重定向,至少不是现成的


我建议只使用ip而不是名称,因为这将为您节省很多麻烦

我通过禁用此子域的CloudFlare代理解决了此问题

我通过禁用此子域的CloudFlare代理解决了此问题,但感谢您的回答如果您解决了此问题,然后创建一个答案,以便其他人可以更轻松地找到它