2017-10-30 1 views
2

내 Express/Node.js 응용 프로그램에서 백엔드 websocket 서버용 Socket.io를 사용하고 있습니다.Node.js Socket.io 서버에 프론트 엔드 네이티브 websocket 클라이언트 연결

const socket = new WebSocket('ws://localhost:3001'); 

socket.onopen =() => { 
    socket.send('I am a client and I am listening'); 

socket.onmessage = (event) => { 
    console.log('Client received message: ', event); 
}; 

socket.onclose = (event) => { 
    console.log('Client socket has closed: ', event); 
    } 
}; 

웹 소켓 :

(같은 Node.js를 서버에서 호스팅) 프런트 엔드에
const socketIo = io(server); 
socketIo.on('connection', (client) => { 
    console.log('client connected'); 
    client.emit('test', { test: '123' }); 
    client.on('client-test', (data) => { 
     console.log('from client: ', data); 
    }); 
}); 

, 나는 기본 WebSocket을 사용하고, 나는이있다 : 서버 측 코드는 다음과 같습니다 연결은 결코 확립되지 않는 것 같습니다 (나는 서버에서 아무것도 기록하지 않습니다). 또한, 나는 클라이언트 측 (즉, '테스트'메시지)에서 서버로부터 방출 된 메시지를 받아들이는 방법이나 클라이언트로부터 서버에서 메시지를 받아들이는 방법을 확신하지 못합니다 (즉, 서버는 일부 클라이언트 테스트 '메시지).

프런트 엔드의 네이티브 웹 소켓이 백엔드의 Socket.io와 호환되지 않는지 궁금합니다. 프론트 엔드에서 Socket.io를 사용할 때도 제 설정 작업을 했었지만 가능한 한 프론트 엔드의 기본 웹 소켓으로 작업하고 싶습니다.

답변

4

Socket.io는 기본 웹 소켓이 아니며 사용자 지정 전송 레이어가 있습니다. socket.io와 통신하려면 https://github.com/socketio/engine.io-client이 필요합니다.

또는 백엔드에서 기본 websocket 라이브러리를 사용할 수 있습니다. Like : https://github.com/websockets/ws

+0

비 JS 언어를 사용하는 사람과 얼마나 정확하게 연결되어 있습니까? – BradLaney

+0

@BradLaney 그들은 몇 가지 다른 언어로 고객을 가지고 있습니다 : [Github] (https://github.com/socketio?utf8=%E2%9C%93&q=socket.io-client&type=&language=) 당신이 선택한 언어로 –

관련 문제