我可能没有输入正确的搜索词,但我似乎找不到允许我的节点应用程序启动与另一个telnet服务器(非节点)的socket.io客户端连接的好示例。
以下是我尝试连接到telnet服务器的节点应用程序
var ioc = require('socket.io-client'),
clientSocket = ioc.connect('192.168.1.97', {
port: 23
});
clientSocket.on('connect', function(){
console.log('connected to to telnet');
});
clientSocket.on('connect_error', function(data){
console.log('connection error to telnet');
console.log(data);
});
clientSocket.on('connect_timeout', function(data){
console.log('connection timeout to telnet');
console.log(data);
});
这是我得到的错误
connection error to telnet
timeout
connection timeout to telnet
20000
我已经从终端成功直接telnet到telnet服务器。代码不好?
答案 0 :(得分:14)
你不能。
Socket.IO与常规TCP网络套接字无关。 Socket.IO是一个RPC层,通过多个传输(Web套接字,长轮询AJAX等)提供类似Web套接字的功能。您不能只连接到任何所需的服务器,您必须连接到Socket.IO服务器。甚至Web Sockets本身也有一个建立在HTTP之上的完整协议,必须设置它。
如果要连接到任意服务器以发送/接收数据,则必须通过Node.js应用程序在服务器端代理该连接。 Socket.IO仅用于Socket.IO客户端和Socket.IO服务器之间的通信。
答案 1 :(得分:1)
不确定是否可以这样做,但看看这个包