6
나는 표준 구성 sockjs을 사용하고 있습니다.node.js websocket 서버를 테스트하는 방법은 무엇입니까?
var ws = sockjs.createServer();
ws.on('connection', function(conn) {
conn.on('data', function(message) {
wsParser.parse(conn, message)
});
conn.on('close', function() {
});
});
var server = http.createServer(app);
ws.installHandlers(server, {prefix:'/ws'});
server.listen(config.server.port, config.server.host);
wsParser.parse
기능은 다음과 같이 작동 스위치라는
function(conn, message) {
(...)
switch(message.action) {
case "titleAutocomplete":
titleAutocomplete(conn, message.data);
break;
(...) // a lot more of these
}
각 방법은 클라이언트에 메시지를 다시 보냅니다.
var titleAutocomplete = function(conn, data) {
redis.hgetall("titles:"+data.query, function(err, titles){
if(err) ERR(err);
if(titles) {
var response = JSON.stringify({"action": "titleAutocomplete", "data": {"titles": titles}});
conn.write(response);
}
})
};
지금 내 문제는 내가 (더 늦은 것 같아요 결코 이상) 내 코드에 대한 테스트를하고 싶습니다 내가 그것을 수행하는 방법 아무 생각이 없다는 것입니다. 나는 모카 + supertest와 정상 HTTP 테스트를 쓰기 시작하지만 난 그냥 WebSocket을 처리하는 방법을 모르겠어요.
내가 모든 테스트를 통해, 내가 첫 번째 메시지 이후에 사용자 세션과 웹 소켓 연결을 바인딩 그리고 난뿐만 아니라 지속성을 테스트 할 재사용 할 수있는 단 하나의 웹 소켓 연결을하고 싶습니다
.
어떻게 WS 클라이언트의의 onMessage 이벤트를 사용하고 내 테스트에서 그것을 사용합니까? 검사가받은 메시지를 어떻게 구분할 수 있는지, 그리고 어떤 메시지가 기다려야 하는지를 알 수 있습니까? 직장에서