Socket.IO 客户端如何连接?

Posted

技术标签:

【中文标题】Socket.IO 客户端如何连接?【英文标题】:Socket.IO Client How to Connect? 【发布时间】:2017-05-10 04:44:11 【问题描述】:

我在这里关注第二个示例: https://github.com/socketio/socket.io-client

并尝试使用节点中的 socket.io-client.js 连接到使用 websockets 的网站。

我的代码如下:

var socket = require('socket.io-client')('ws://ws.website.com/socket.io/?EIO=3&transport=websocket');

socket.on('connect', function() 
    console.log("Successfully connected!");
);

不幸的是,没有任何记录。

我也试过了:

var socket = require('socket.io-client')('http://website.com/');

socket.on('connect', function() 
    console.log("Successfully connected!");
);

但什么都没有。

请告诉我我做错了什么。谢谢!

【问题讨论】:

【参考方案1】:

虽然上面发布的代码应该可以连接到 socket.io 服务器的另一种方法是在客户端调用 connect() 方法。

Socket.io 客户端

const io = require('socket.io-client');
const socket = io.connect('http://website.com');

socket.on('connect', () => 
  console.log('Successfully connected!');
);

带有 Express 的 Socket.io 服务器

const express = require('express');

const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);

const port = process.env.PORT || 1337;

server.listen(port, () => 
    console.log(`Listening on $port`);
);

io.on('connection', (socket) => 
    // add handlers for socket events
);

编辑

添加了 Socket.io 服务器代码示例。

【讨论】:

您能否提供一个在您的计算机上运行的示例网站? 谢谢。我运行了服务器端代码,然后打开了一个新终端并运行了客户端代码,但什么也没有。我只想连接到一个我知道使用 socket.io 的网站——它不是我的网站——然后开始向它发送数据。

以上是关于Socket.IO 客户端如何连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Socket.IO 中模拟连接失败

如何检测Socket IO中的重新连接事件

如何将 socket.io 挂载到 fastapi 应用程序并向所有连接的客户端发送广播

Node.js:socket.io 关闭客户端连接

如何在 apache 服务器上运行 socket.io(仅限客户端)

如何在socket.io中的断开事件上获取断开连接的客户端的套接字ID