gpt4 book ai didi

node.js - NodeJS : Socket. IO:Websocket 请求显示状态为已完成,而不是预期的 101

转载 作者:行者123 更新时间:2023-12-03 04:17:17 25 4
gpt4 key购买 nike

我有一个实现了 socket.io 的 Node JS 应用程序。该应用程序在测试期间完美托管。但是,当部署到 Azure Apps 时,它开始出现异常行为。在分析请求后,我发现了两个差异。

  1. Websocket 请求以 ws://localhost:3000/... 的形式从 localhost 发送,而在 Azure 应用程序上则以 wss://azure-apps-url/... 的形式发送
  2. Websocket 请求在本地主机上的 HTTP 状态为 101,部署时的 HTTP 状态为“(已完成)”。

注意:我的 Azure 应用程序启用了 Websockets。

我无法弄清楚可能是什么问题。任何帮助,将不胜感激。如果需要应用程序代码来调试问题,请告诉我。

编辑:根据请求添加代码。服务器端代码:

var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;
var options = {
debug: false
}
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
server.listen(process.env.PORT || 3000);

app.use('/peerjs', ExpressPeerServer(server, options));

客户端代码

$(document).ready(function(){
//localhost:3000 to be replaced by Azure Site URL
var socket = io.connect("localhost:3000");
var peer = new Peer({host: "localhost", port: "3000", path: "/peerjs"});

//further operations with peer and socket
}

最佳答案

server.listen(process.env.PORT || 3000); 更新为 server.listen(process.env.port); 似乎已经解决了该问题。但是,套接字连接仍然不起作用。我假设 PeerJS 和 Socket.IO 的实现都可能导致某种冲突。

关于node.js - NodeJS : Socket. IO:Websocket 请求显示状态为已完成,而不是预期的 101,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945821/

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