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

Node.js NodeJS:Socket.IO:Websocket请求将状态显示为已完成,而不是预期的101,node.js,azure,websocket,socket.io,Node.js,Azure,Websocket,Socket.io,我有一个实现socket.io的NodeJS应用程序。在测试过程中,应用程序在主机上完美运行。然而,当部署到Azure应用程序时,它开始行为不端。 在分析请求后,我发现了两个差异 websocket请求作为ws://localhost:3000/…发送。。。在Azure应用程序上以本地主机发送wss://azure-apps-url/... websocket请求在本地主机上的HTTP状态为101,部署时的HTTP状态为“(完成)” 注意:我的azure应用程序已启用WebSocket 我不知道

我有一个实现socket.io的NodeJS应用程序。在测试过程中,应用程序在主机上完美运行。然而,当部署到Azure应用程序时,它开始行为不端。 在分析请求后,我发现了两个差异

  • websocket请求作为ws://localhost:3000/…发送。。。在Azure应用程序上以本地主机发送wss://azure-apps-url/...
  • websocket请求在本地主机上的HTTP状态为101,部署时的HTTP状态为“(完成)”
  • 注意:我的azure应用程序已启用WebSocket

    我不知道会是什么问题。任何帮助都将不胜感激。请务必让我知道是否需要应用程序代码来调试该问题

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

    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的实现都可能导致某种冲突