为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript - 如何为 Socket.io 事件创建自定义 API 侦听器?

JavaScript - 如何为 Socket.io 事件创建自定义 API 侦听器?

HUH函数 2021-06-15 05:01:16
我正在尝试为我网站上的 3 位开发人员创建自定义API 侦听器。它应该是这样的:// Function will be fired when any user joins to roomAPI.on('user-join', function(data){  console.log(data); // Data is object with user id and name});我也有Socket.io 监听器:// This handler is fired every time when anyone joinssocket.on('user-join', function(data){  // Probably here i should call a callback to API.on('user-join') with that data object});如何将 Socket.io 处理程序中的回调发送到我自定义创建的 API?请让我知道如何做到这一点。谢谢。
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

你把事情搞混了。

您的套接字 API 将需要一个独立于您的套接字 API 的服务器端侦听器,据我所知,它通过连接的客户端管理 IO,对吗?

在这种情况下,您不必绑定任何东西。您需要一个用于 API 套接字的控制器,并且您客户端的控制器必须向这些用户触发事件。

  • 客户端连接到您的站点

  • 服务器收到通知

  • 服务器通知 API 用户

这是一些伪代码,请不要使用它,它只是说明了一个概念:D

const thrdUsers = [.....] // socket connections

const onThirdUserConnects = socket => thrdUsers.push(socket);

API.on('connect', onThirdUsersConnects);


// Then you need a broadcast function to send events to all your clients

const broadcastToAPI = (msg, val) => thrdUsers.forEach(s => s.send(msg, val));


// Your users will trigger events to your socket.io service

socket.on('whatever-event', (data) => {

  //...Do stuff

  // notify the API clients

  broadcastToAPI('whatever-event', data);

});


查看完整回答
反对 回复 2021-06-18
  • 2 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信