express-ws,websocket连接失败的问题

我用的express -e快速生成的代码,这是我的子路由,这里导入express-ws然后把路由放进去,相当于给路由添加了ws方法,56c440519a94407c81559f86e28715dd.jpg

 重要的是bin下的www文件,这里要导入express-ws然后把app和server添加进去,在项目启动时webSocket也启动了,这里和连接数据库一样也要在这导入启动,不然连不上,之前就在这卡了半天

62e9c528f800479f860f0b204da8031f.jpg

 

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要向指定用户发送消息,您可以在服务器端使用 WebSocket 的 `send()` 方法向特定的用户发送消息。以下是一个示例代码: ```javascript // server.js const express = require('express'); const expressWs = require('express-ws'); const app = express(); expressWs(app); const clients = []; app.ws('/chat', (ws, req) => { ws.on('message', (msg) => { const data = JSON.parse(msg); const { clientId, message } = data; // 找到指定的客户端并向其发送消息 const client = clients.find((c) => c.clientId === clientId); if (client) { client.ws.send(message); } }); ws.on('close', () => { // 移除断开连接的客户端 const index = clients.findIndex((c) => c.ws === ws); if (index !== -1) { clients.splice(index, 1); } }); }); app.post('/register', (req, res) => { const clientId = req.body.clientId; const client = { clientId: clientId, ws: req.ws, }; clients.push(client); res.status(200).send('Client registered successfully'); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 在上面的示例中,我们添加了一个新的路由 `/register`,用于注册客户端。当客户端发送 POST 请求时,我们从请求体中获取 `clientId`,并将其与客户端的 WebSocket 连接一起添加到 `clients` 数组中。 当服务器收到客户端发送的消息时,我们解析该消息,并提取出 `clientId` 和 `message`。然后,我们使用 `find()` 方法在 `clients` 数组中查找具有相应 `clientId` 的客户端。如果找到指定的客户端,我们使用其 WebSocket 连接的 `send()` 方法向其发送消息。 请注意,上述代码只是一个示例,您可能需要根据您的实际需求进行相应的修改和适配。还要确保在客户端注册之前不要尝试向其发送消息,以免出现错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值