2016-06-11 3 views
0

일부 기능과 데이터베이스 (xampp의 Apache 및 mySQL)에서 일부 쿼리에 대해 AngularJS 및 php를 적용하는 작은 웹 응용 프로그램이 있습니다. 이제 웹 앱의 간단한 채팅에 적용하고 구성하는 방법이나 포트 등을 알지 못합니다. http://socket.io/get-started/chat/xampp과 node (socket.io)가 함께 작동합니다.

(XAMPP 80과 443을 보여줍니다 나는 그런

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 

}); 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
    socket.on('disconnect', function(){ 
    console.log('user disconnected'); 
    }); 
}); 


http.listen(443, function(){ 
    console.log('listening on *:443'); 
}); 

I 포트 443 및 80을 시도하고있다으로하는 index.js을 가지고 있지만 그들이 일하는 것 같지 않습니다, 아니 생각이 비슷한 다음

포트는 내 JS 파일이 다음 var socket = io(); 브라우저 콘솔에서

, 내가 갖는 무언가가

) 작동하는 방법 like

socket.io-1.2.0.js:2 GET http://localhost/socket.io/?IO=3&transport=polling&t=1465649664392-0 404 (Not Found) 

이 문제를 어떻게 해결할 수 있습니까? node index.js을 실행 한 후 cmd에 a user connected과 같은 결과가 나타날 것으로 예상되지만 그렇지 않습니다.

나는 채팅에 대한 예제를 따라 갔으며 xampp 없이도 정상적으로 작동합니다.

답변

0

문제가 발생하면 socket.io이 작동하려면 http를 통해 백엔드와 통신 할 수 있어야합니다 (예 : switch the protocol). 그러나 xampp이 포트를 사용한다면 작동하지 않을 것입니다. xhampp이 http://localhost/socket.io/*에 요청을 전달하는 곳에서 node.js 서버로 무언가를 시도해보십시오.

당신은 포트 8000

node.js 서버를 시작하는 당신이하려는 필요한 모듈은 다음
LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 

를 사용할 수 있는지 만드는 ProxyPass directive in the Apache httpd.conf을 사용하고 또한

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/socket.io   [NC] 
RewriteCond %{QUERY_STRING} transport=websocket [NC] 
RewriteRule /(.*)   ws://localhost:8000/$1 [P,L] 

ProxyPass  /socket.io http://localhost:8000/socket.io 
ProxyPassReverse /socket.io http://localhost:8000/socket.io 

처럼 뭔가를 할 수

http.listen(8000, function(){ 
    console.log('listening on *:8000'); 
}); 
+0

가 난 그냥 설정에서 아무 곳이나 지시문을 넣어 마십시오

var configUrl = 'http://localhost:3000';// currently my node js using this port var socket = io(configUrl); 

과 일을 남아있는 클라이언트 측에서 원활하게 작동하는 클라이언트 측 JS 파일? 'localhost/foldername'와 같은 xampp에 정상적으로 액세스합니까? – Lester

+0

모든 것을 정상적으로 처리합니다. 'httpd.conf'에 지시어를 추가하십시오. 파일의 끝에 추가했습니다. –

+0

본인의 모범을 보여줄 수 있습니까? 나는 당신이 말한 모든 것을 다했는데 아무 것도 바뀌지 않았다. (아마도이 ​​것들에 대한 지식이 부족하다.) – Lester

0

요 u는 단순히이 작업을 수행 할 수있는 HTTP가 필요 열 리디렉션하지

socket.emit('chatMessage', ... 
socket.on('chatMessage', .. 
관련 문제