Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当接收到websocket连接请求时,节点服务器分段错误(核心转储)_Node.js_Apache_Socket.io - Fatal编程技术网

Node.js 当接收到websocket连接请求时,节点服务器分段错误(核心转储)

Node.js 当接收到websocket连接请求时,节点服务器分段错误(核心转储),node.js,apache,socket.io,Node.js,Apache,Socket.io,我正在使用Node sever和Socketio制作一个简单的聊天应用程序。我的网站是SSL。我正在使用带有代理到节点服务器的apache服务器进行websocket连接。当我的节点服务器使用轮询接收到第一个请求时,它会成功连接。调用了客户端连接事件,我也可以看到socket.id,但就在它之后,socketio内部功能尝试升级到websocket的连接。。节点服务器崩溃,终端出现错误 分段故障(堆芯转储) 就这个。。。我不熟悉node.js和socket io。帮我解决这个问题。。还告诉我是否

我正在使用Node sever和Socketio制作一个简单的聊天应用程序。我的网站是SSL。我正在使用带有代理到节点服务器的apache服务器进行websocket连接。当我的节点服务器使用轮询接收到第一个请求时,它会成功连接。调用了客户端连接事件,我也可以看到socket.id,但就在它之后,socketio内部功能尝试升级到websocket的连接。。节点服务器崩溃,终端出现错误 分段故障(堆芯转储) 就这个。。。我不熟悉node.js和socket io。帮我解决这个问题。。还告诉我是否有办法使用shell命令调试服务器,因为我没有桌面访问服务器的权限。我只使用SSH访问连接到它

这是我的服务器代码

var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
  key: fs.readFileSync('apache-selfsigned.key'),
  cert: fs.readFileSync('apache-selfsigned.crt')
};
var serverPort = 9001;

var server = https.createServer(options, app);
var io = require('socket.io')(server);

io.on('connection', function(socket) {
  console.log('new secure connection');
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});
server.listen(serverPort, function() {
  console.log('server up and running at %s port', serverPort);
});
这是我的客户代码

socket = io('https://www.MyApacheServer.net/');
socket.on('connect', function(){
    console.log("Connected");
    console.log(socket.id);
});
socket.on('disconnect', function(){
    console.log("DisConnected");
});
socket.on('error', function (e) {
    console.log('System', e ? e : 'A unknown error occurred');
});
socket.on('chat message', function(msg){
    alert(msg);
});

通过使用解决的问题

socket = io('https://www.MyApacheServer.net/', {transports:['polling'], upgrade: true});
我不知道为什么会这样。。。即使在我的情况下,它也不适用于这种说法

socket = io('https://www.MyApacheServer.net/', {transports:['websocket']});
请试试这个:

io = require('socket.io')(server, { wsEngine: 'ws' });
问题在于uws。 这对我有用

sudo apt --auto-remove purge npm
sudo apt --auto-remove purge nodejs

请运行此命令。它适合我。

这听起来像是插入node.js(可能在socket.io中)的一些二进制代码没有正确安装或编译。我建议卸载socket.io,然后重新安装。谢谢@jfriend00的提示。。。我做了npm缓存清除------rm-rf节点_模块------节点安装。。。但这无助于。。。同样的错误再次出现…这个问题与P编程语言无关,请不要使用标签。这为我解决了问题。还允许我在socket.io github页面上查找相关问题