2017-05-22 1 views
0

Socket.IO 및 Express를 사용하여 WebRTC에 대한 간단한 신호 서버를 구축하려고합니다. Express 나 Socket.IO를 한번도 사용 해본 적이 없기 때문에, 저는 몇 가지 예제 (ES6 사용)를 살펴 보았습니다. 당연히 서버에 연결하는 데 문제가 있습니다. 누구든지 조언 할 수 있습니까? 여기에 아주 기본적인 서버가 바로 doc에서 왔으며,을 가이드로 사용하여 ES6으로 수정되었습니다.Socket.IO 및 express가 연결할 수 없습니다.

import http from 'http'; 
import express from 'express' 
import SocketIO from 'socket.io' 

let app = express(); 
let server = http.Server(app); 
let io = new SocketIO(server); 

app.get('/', (req, res) =>{ 
    res.send('hi'); 
}); 

io.on('connection', (socket) => { 
    "use strict"; 
    socket.emit('news', {hello: 'world'}); 
    socket.on('my other event', (data) => { 
     console.log(data) 
    }) 
}); 

server.listen(80,() => { 
    "use strict"; 
    console.log('Listening on port 80'); 
}); 

나는 NPM에서 wscat 유틸리티와 난 그냥이 얻을 연결을 시도 할 때마다 사용하고 있습니다 : 나는 DEBUG 환경 변수를 사용하려고했습니다 enter image description here

를하지만하지 않는 것 많이해라. 나는 또한 그 마지막 줄 당 ws : // localhost : 80/socket.io을 시도했지만 작동하지 않았다. : enter image description here

+0

socket.io는 webSocket 위에 추가 레이어입니다. webSocket -> socket.io 또는 그 반대로 연결할 수 없습니다. socket.io 서버에 연결하려면 socket.io 클라이언트가 필요합니다. – jfriend00

답변

0

괜찮 았던 것 같아. 소켓 연결은 내가 생각한 것보다 조금 복잡했다. Socket.IO. 위와 같이 서버에 실제로 아무 문제가 없지만 단순히 wscat을 사용하고 ws://localhost에만 연결하려고하면 올바르지 않습니다. 나는 그것이 WebSockets만으로는 효과가있을 것이라고 생각하지만 Socket.IO를 사용한다면 다른 것입니다. Windows 셸의 전체 명령은 엔드 포인트가 /socket.io/입니다

wscat -c ws://localhost:80/socket.io/\?transport=websocket 

참고해야 내 셋업 (내 경우) wscat 유틸리티를 사용하여 연결합니다. 또한 여기 How to connect with socket.io from a ws client?합니다 (이스케이프주의)에서이 URL을 사용할 수 있습니다

ws://localhost:3000/socket.io/?EIO=3&transport=websocket 

그리고 당신은 또한 내가 처음에 일을하려고했다처럼 간단하게 보인다 iocat NPM 패키지를 시도 할 수 있습니다.

관련 문제