您的位置:首頁技術文章
文章詳情頁

html5 - express4 + socket.io 如何在connection的回調外邊使用socket.emit方法

瀏覽:134日期:2023-10-03 08:32:48

問題描述

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='http://www.wxshucaidpc.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='http://www.wxshucaidpc.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='http://www.wxshucaidpc.com/wenda/images/tell_bottom.gif' height='12'></td> </tr> </table>

標簽: Html5
相關文章:
国产综合久久一区二区三区