gpt4 book ai didi

javascript - 无法连接本地主机 :8081 using node. js

转载 作者:行者123 更新时间:2023-11-30 00:10:25 25 4
gpt4 key购买 nike

我打开了server.js,地址:http://localhost:8081在我的浏览器上。但是随后在网站的左上角出现了“需要升级”的文本。那有什么问题呢?我还需要升级什么?

这是 server.js:

var serialport = require('serialport');
var WebSocketServer = require('ws').Server;

var SERVER_PORT = 8081;
var wss = new WebSocketServer({
port: SERVER_PORT
});
var connections = new Array;

SerialPort = serialport.SerialPort,
portName = process.argv[2],
serialOptions = {
baudRate: 9600,
parser: serialport.parsers.readline('\n')
};
if (typeof portName === "undefined") {
console.log("You need to specify the serial port when you launch this script, like so:\n");
console.log(" node wsServer.js <portname>");
console.log("\n Fill in the name of your serial port in place of <portname> \n");
process.exit(1);
}

var myPort = new SerialPort(portName, serialOptions);

myPort.on('open', showPortOpen);
myPort.on('data', sendSerialData);
myPort.on('close', showPortClose);
myPort.on('error', showError);

function showPortOpen() {
console.log('port open. Data rate: ' + myPort.options.baudRate);
}

function sendSerialData(data) {
if (connections.length > 0) {
broadcast(data);
}
}

function showPortClose() {
console.log('port closed.');
}

function showError(error) {
console.log('Serial port error: ' + error);
}

function sendToSerial(data) {
console.log("sending to serial: " + data);
myPort.write(data);
}

wss.on('connection', handleConnection);

function handleConnection(client) {
console.log("New Connection");
connections.push(client);

client.on('message', sendToSerial);
client.on('close', function () {
console.log("connection closed");
var position = connections.indexOf(client);
connections.splice(position, 1);
});
}
function broadcast(data) {
for (c in connections) {
connections[c].send(data);
}
}

最佳答案

好的,websockets...

“需要升级”状态标志着 websocket 握手的开始。通常您的客户端首先将其发送到 WS 服务器。服务器以非常相似的方式回答(详情在这里:https://www.rfc-editor.org/rfc/rfc6455),然后继续传输实际数据。

在这里,您将作为常规 http 从您的客户端打开一个连接,发送一个简单的 GET。您在屏幕上看到的是服务器愚蠢地继续进行已经损坏的握手。

这不是您打开 WS 客户端连接的方式。您通常不会从浏览器打开 WS 页面。它应该通过 JavaScript 调用打开,例如 new WebSocket(uri)。所以你想要的是另一个端口上的常规 http 服务器,它提供一个包含必要的 Javascript 的页面来打开实际的 WS 连接并对它的数据做一些有用的事情。你会在这里找到一个干净的例子:http://www.websocket.org/echo.html

关于javascript - 无法连接本地主机 :8081 using node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com