如何在express的路由中操作socket.io

JavaScript017

如何在express的路由中操作socket.io,第1张

最近,遇到一个问题需要在 express 路由中操作 socket ,而网上的例子基本上是在主文件操作 socket 。

给 router 添加一个 io 函数,接收参数 io ( io 是引入的 socket.io 库)。

咱把 router 导出,在 app.js 中导入,然后把 router.io 赋给 app.io 。

最后,在 bin/www 中导入 socket.io 并调用 app.io 。

现在 chat.js 中的 router.io 成功接收到导入的 socket 。

可能有人会有疑惑,怎么不直接在 chat.js 中直接导入 socket.io ?

用 express-generator 生成的 express 项目,目录结构如下

express项目目录结构

http 模块是在 bin/www 下导入并生成 server ,而 socket.io 基于 http (socket.io的参数就是server),所以网上的示例大多数是写在该文件里。

如果对你有帮助,请给个❤。

js负责页面与用户的交互,动态修改页面的内容。使用js脚本来处理用户的操作。

操作解释: 点击button按钮(点我),修改界面的msg显示为"BeiJing佩奇"

绑定事件: bindtap定义了"点击事件"

j s 函数: Page({定义函数对应bindtap})

例如开头示例一样,组件绑定事件,js编写事件函数。

这里大概介绍下log打印的内容

☞ 小生不才,附上 博客地址☜

事件分为冒泡事件和非冒泡事件

1.冒泡事件:当一个组件被触发后,该事件以此向父节点传递。

2.非冒泡事件:当一个组件触发后,该事件不会向父节点传递。

解释:当点击子节点时,会依次触发"bind事件2,bind事件1"

解释:当点击子节点时,只触发"bind事件2",而没有触发"bind事件1"

自基础班1.5.0起,触摸类事件支持捕获阶段。捕获阶段位于冒泡阶段之前。事件到达节点的顺序与冒泡相反。捕获事件采用的关键字为capture-bind、capture-catch,当然catch还是中断,取消冒泡阶段。

1. 示例1,执行顺序为hand2,hand4,hand3,hand1

2. 示例2,加入capture-catch捕获事件,只执行hand2