2014-01-11 3 views
2

Я пишу сервер на основе сокетов в узле js, используя библиотеку ws, и я хотел бы проверить, работает ли мой код. Я видел, как telnet использовался в других местах для тестирования простых чат-серверов, но когда я запускаю свой сервер и выполняю telnet 127.0.0.1 5000, хотя на выходе указано «подключено к локальному хосту», мой сервер не регистрирует ничего связанного с новым соединением. Я неправильно тестирую свой сервер или мой сервер просто не работает? Код моего сервера ниже:Веб-узлы тестовых узлов с telnet

var WebSocketServer = require('ws').Server 
     , http = require('http') 
     , express = require('express') 
     , app = express() 
     , port = process.env.PORT || 5000; 

    var server = http.createServer(app); 
    server.listen(port); 

    var wss = new WebSocketServer({server: server}); 
    console.log('websocket server created'); 
    wss.on('connection', function(ws) { 
    var id = setInterval(function() { 
     ws.send(JSON.stringify(new Date()), function() { }); 
    }, 1000); 

    console.log('websocket connection open'); 

    ws.on('close', function() { 
     console.log('websocket connection close'); 
     clearInterval(id); 
    }); 
    }); 
+0

Похоже, ты понял это, но WebSockets не только простые старые TCP-сокеты. Это целый протокол прикладного уровня. Там много чего, поэтому вы не сможете протестировать клиент Telnet. – Brad

ответ

2

Вы подключились к HTTP-серверу, но не установили соединение с WebSocket. Вот почему ваш скрипт ничего не печатает.

Я не уверен, что вы можете проверить websocket вручную, посмотрите на handshake.

Но есть несколько telnet-подобных программ, которые работают с websocket. Может быть, wscat из используемого вами модуля ws поможет.

+0

wscat - это именно то, что мне нужно, спасибо – user3080098

+0

есть ли способ подключения к сокету из приложения iOS? передавая ip-адрес и порт, без связи удачи (вот мой код: CFStreamCreatePairWithSocketToHost (NULL, (CFStringRef) @ "122.38.1.3", 91, & readStream и writeStream);) – user3080098

0

Этот маленький инструмент сделал работу для меня: https://github.com/lafikl/telsocket

brew tap pascaliske/telsocket 
brew update 
brew install telsocket 
telsocket -url ws://127.0.0.1:50000 

(для людей, которые не используют НПМ)

Смежные вопросы