2017-05-29 15 views
1

SocketioでNode severを使用して簡単なチャットアプリケーションを作成しています。私のウェブサイトはSSLです。私はwebsocket接続のためのノードサーバーへのプロキシとApacheサーバーを使用しています。ノードサーバーがポーリングを使用して最初の要求を受信すると、ノードサーバーは接続に成功します。クライアント側の接続イベントが呼び出され、socket.idも表示されますが、ソケットの内部機能がwebsocketへの接続をアップグレードしようとした直後です..端末サーバーでエラーが発生したノードサーバーがクラッシュします セグメンテーションフォルト(コアダンプ) これは...私はnode.jsとsocket ioが初めてです。私はこの問題を解決する方法を教えてください。シェルコマンドを使用してサーバーをデバッグする方法があるかどうかを教えてください。私は私は私のクライアントコードがノードサーバのセグメンテーションフォルト(コアダンプ)、ウェブソケット接続要求を受信したとき

socket = io('https://www.MyApacheServer.net/', {transports:['polling'], upgrade: true}); 

を使用することによって解決

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); 
}); 
+0

これはnode.js(おそらくsocket.io)にプラグインするバイナリコードがインストールされていないか正しくコンパイルされていないようです。 socket.ioをアンインストールしてから再インストールすることをお勧めします。 – jfriend00

+0

チップのための@ jfriend00ありがとう...私はした npmキャッシュクリア----- rm -rf node_modules -----ノードインストール... しかし、それは助けになりません...再び同じエラー... –

+0

この質問は、Pプログラミング言語とは関係ありません。[tag:p]タグを使用しないでください。 – JAL

答えて

0

問題である私のサーバー・コードはここ

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); 
}); 

です。ここ.. SSHアクセスとそれに

を接続しますなぜこれが起きているのか分かりません...私の場合でも、この声明ではうまくいきませんでした

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

これを試してください。

io = require('socket.io')(server, { wsEngine: 'ws' }); 

問題がUWSについてです。 これは私のために働いた

+0

これは私の問題を解決しました。また、socket.io githubページhttps://github.com/socketio/socket.io/issues/2945で関連する問題を見つけることができました – halfs13

関連する問題