【问题标题】:Socket.io Javascript nodejs, TCP socketSocket.io Javascript nodejs,TCP 套接字
【发布时间】:2022-01-28 14:55:57
【问题描述】:
I am trying to send a TCP Request to a server via IP:PORT...

此代码适用于我:

var net = require('net'); var client = new net.Socket();
const port = 1337; const HOST = "192.168.1.101";
function connect() {
  client.connect({ port: PORT, host: HOST });
  client.on('data', (data) => {
    console.log(data);
    client.destroy();
    });
  
    client.on('close', function() {
    console.log('Connection closed');
    });
  }

此代码挂起,无响应: (另请注意:我在 io.connect 中的 IP 之前输入“http://”以响应不将主机名返回为未定义(见下文)):

console.log(socket); //returns=> undefined://192.168.1.101:1337
//uri: 'undefined//192.168.1.101:730',


const io = require('socket.io-client');
const socket = io.connect('192.168.1.101:1337');//=undefined hostname; works, but hangs
//const socket = io.connect('http://192.168.1.101:1337'); //works, but hangs as well...

function connect() {
  console.log('connecting...');
  **socket.on('connect', () => {**
    console.log('Successfully connected!');
      // add handlers for socket events
  }); //I never receive response from socket.on('connect', ()=> {...

无论我尝试发送一个套接字,我都没有得到响应...... 它只是挂起,等待响应...

任何帮助都将不胜感激!

console.log(socket); //this command returns the following response from command down below:

套接字 { 连接:假, 断开连接:真实, 接收缓冲区:[], 发送缓冲区:[], 编号:0, 确认:{}, 标志:{}, io:经理{ nsps: { '/': [循环 *1] }, 潜艇:[ [功能:子销毁], [功能:子销毁], [功能:子销毁] ], 选择:{ 路径:'/socket.io', 主机名:'192.168.1.101', 安全:假, 端口:'1337' }, setTimeoutFn:[功能:绑定setTimeout], clearTimeoutFn:[功能:绑定clearTimeout], _重新连接:真, _reconnectionAttempts:无限, _重新连接延迟:1000, _reconnectionDelayMax: 5000, _randomizationFactor:0.5, 退避:退避{ 女士:1000, 最大:5000, 系数:2, 抖动:0.5, 尝试:0 }, _timeout: 20000, _readyState: '打开', uri: 'http://192.168.1.101:1337', 编码器:编码器{}, 解码器:解码器{}, _autoConnect:真, 引擎:套接字{ setTimeoutFn:[功能:绑定setTimeout], clearTimeoutFn:[功能:绑定clearTimeout], 安全:假, 主机名:'192.168.1.101', 端口:'1337', 运输:[数组], readyState: '打开', 写缓冲区:[], prevBufferLen: 0, 选择:[对象], 身份证:空, 升级:空, pingInterval:空, ping超时:空, pingTimeoutTimer:空, 运输:[XHR], _callbacks:[对象] }, 跳过重新连接:假, _回调:{ '$open': [数组], '$packet': [数组], '$error': [数组], '$close':[数组] } }, nsp: '/', 潜艇:[ [功能:子销毁], [功能:子销毁], [功能:子销毁], [功能:子销毁] ] } */

【问题讨论】:

    标签: javascript node.js sockets tcp socket.io


    【解决方案1】:

    您忘记在您的网址中声明协议,请尝试http://192.168.1.101:1337ws://192.168.1.101:1337(如果您的服务器不使用 SSL)

    并确保服务器端也实现socket.io 服务器,而不仅仅是 TCP 协议。

    【讨论】:

    • 好的,我已经尝试了协议:“ws://192.168.1.101:1337”,但仍然无法正常工作。我认为它不起作用,因为服务器肯定没有使用 socket.io。我不知道服务器上也需要 socket.io ......还有其他方法可以解决这个问题吗?在继续使用 js 中的代码之前,我正在尝试异步等待响应数据。谢谢! :)
    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多