html5 - express4 + socket.io 如何在connection的回调外边使用socket.emit方法
问题描述
app.js
var sockect = require(’./socket/server’) var users = require(’../router/users’)app.use(’/users’, users); //路由var server = app.listen(9000, function () {console.log(’server start’); });sockect(server); //启动socket
server.js
’use strict’;module.exports = function(server) { var io = require(’socket.io’).listen(server); io.sockets.on(’connection’, function (socket) {//如何将这里的socket暴露给其他地方的js方法里使用socket.emit ? }); return io;};
上面是我目前的结构,希望在users里面的逻辑里触发emit方法,google了很多,也没有找到有什么办法可以将参数socket传递出去,不然的话所有逻辑只要涉及到socket.emit的都要写在connection的回调里..
问题解答
回答1:server.js文件中:
var users = require(’../router/users’)module.exports = function(server) { var io = require(’socket.io’).listen(server); io.sockets.on(’connection’, function (socket) {//如何将这里的socket暴露给其他地方的js方法里使用socket.emit ?users.doSomething(socket); }); return io;};
然后在users.js写业务逻辑
回答2:我也遇到这个问题,求解
回答3:我也觉得外部调用socket没什么意义。。而且express和socket两者走的协议都不一样,你可以把user的身份信息保存在 局部变量socket的作用域内通过标识信息来执行相应用户的操作
回答4:同求解,怎么把那个socket对象暴露出去????
回答5:<table border='0' cellpadding='0' cellspacing='0'><tr> <td height='32'><img src='https://www.haobala.com/wenda/images/tell_top.gif' border='0'></td> </tr> <tr> <td background='images/tell_center.gif'> <?php include_once('function.php'); $news='明日编程词典上市了!'; $i=1; do{ ?> <table with='148' border='0' cellpadding='0' cellspacing='0'> <tr> <td height='20'><img src='https://www.haobala.com/wenda/images/mark_0.gif' height='10'></td> <td width='333'> <?php echo chinesesubstr($news, 0, 18); if(strlen($nes)>18){ echo '...'; } ?> </td> </tr><tr> <td height='5'></td> <td background='images/back_point_write.gif'></td></tr> </table><?php$i++;}while($i<=5);?></td> </tr> <tr> <td height='12'><img src='https://www.haobala.com/wenda/images/tell_bottom.gif' height='12'></td> </tr> </table>
相关文章:
1. node.js - nodejs debug问题2. python - flask post提交timestamp不能作为参数,这是为什么?3. spring-mvc - spring-session-redis HttpSessionListener失效4. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!5. 百度地图api - Android 百度地图 集成了定位,导航 相互的jar包有冲突?6. node.js - express框架,设置浏览器从缓存中读取静态文件,只有js从缓存中读取了,css还有一些图片为何没有从缓存中读取?7. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?8. 做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?9. javascript - 如何获取未来元素的父元素在页面中所有相同元素中是第几个?10. mysql - 一个sql的问题

网公网安备