gpt4 book ai didi

Websocket 客户端获取 200 响应代码

转载 作者:行者123 更新时间:2023-12-05 07:57:34 26 4
gpt4 key购买 nike

我有一个 nodejs 服务器在同一端口上同时提供 http 和 websocket。该设置在本地主机上运行良好,但是当部署在 Amazon Beanstalk(具有负载均衡器和 nginx)上时,ws 客户端在建立 ws 连接时抛出错误:“意外响应代码 200”。我对此不是 100% 确定,但我认为这是因为 nodejs 服务器以某种方式将 ws 握手请求误认为是 http 请求,因此返回 200。这是我的服务器的代码:

var WebSocketServer = require('websocket').server;
var http = require('http');
var fs = require('fs');

var indexPage = "Loading index page, try again later?";

fs.readFile('./index.html',function (err,data){
indexPage = data;
})
var server = http.createServer(function(request, response) {
});
server.listen(1337, function() { });

// create the server
wsServer = new WebSocketServer({
httpServer: server
});

// WebSocket server
wsServer.on('request', function(request) {
console.dir(request);
var connection = request.accept(null, request.origin);
console.log("connected");
connection.on('message', function(message) {
if (message.type === 'utf8') {
console.log("Received",message.utf8Data);
}
});
connection.on('close', function(connection) {
});
});

对我有什么建议吗?在这种情况下,我应该如何配置 nginx 和负载均衡器?

最佳答案

通常在 node.js 托管服务上,它们提供一个环境变量,该变量在每次启动您的应用程序时动态创建 - 这是典型的:

var port = process.env.PORT || 1337;

然后在没有环境变量的情况下在本地启动时,它只使用您最喜欢的 1337

关于Websocket 客户端获取 200 响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734672/

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