[英]net::ERR_CONNECTION_REFUSED when using react with redux
[英]net::ERR_CONNECTION_REFUSED using websockets
我正在尝试使用 vanilla JavaScript 创建一个没有任何框架的 websocket。
我正在尝试发送一个基本的文本 websocket,但它不断向我抛出错误 net::ERR_CONNECTION_REFUSED
我有一个内容安全策略集:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
我的 websocket 在 9000 端口设置为 ws://localhost/。
无论如何,这是我的 script.js 文件:
let a = new WebSocket("ws://localhost:9000"); a.onopen = () => { setTimeout(() => { a.send("working?"); }, 1000); }; a.onmessage = (event) => { console.log(event.data); }
let server = require('ws').Server; let srv = new server({port: 9000}); srv.on('connection', ws => { ws.on('message', msg => { console.log(`Received message => ${msg}`) }) ws.send('hey') })
我看到我的这个老问题没有得到回答,之后我深入研究了 websockets 并发现我认为的问题是我没有设置'Access-Control-Allow-Origin': "*"
在服务器使用 ws 将是:
let server = require('ws').Server;
let srv = new server({port: 9000, 'Access-Control-Allow-Origin': "*"});
srv.on('connection', ws => {
ws.on('message', msg => {
console.log(`Received message => ${msg}`)
})
ws.send('hey')
});
虽然我的问题是不正确的,因为 ws 是一个有助于 websockets 的外部模块,但任何认为在没有这个模块的情况下制作 websocket 服务器很容易的人都是错误的,这是可能的,但是像我的问题一样,一个简单的服务器的代码量需要近 50 行代码并不值得,因为 ws 具有许多特性,使其比不使用外部模块更容易和更可靠。
对于任何想要真正用于学习目的的人来说,这里解释了 websocket 协议,但由于他们不提供代码,我在 repl.it 上做了一个repl
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.