Return 来自 socket.io 的值
Return value from socket.io
我在这里使用节点 js 和 socket.io 我的 website.i 希望 return 值 'newString' 执行下面的 function.Now 我得到正确的function.But 中 'newString' 的值我需要它在函数之外。
<script>
function createSocketPlayList(){
var page = 'notification_playlist';
var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page });
socket.on('notification_playlist', function (data_playlist) {
var usersList_playlist = "";
var musicTitle = "";
var myPlaylist = "";
$.each(data_playlist.users_playlist,function(index,user){
musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>";
usersList_playlist += "{ ";
usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'";
usersList_playlist += " },";
});
var newString = usersList_playlist.substr(0, usersList_playlist.length-1);
});
}
</script>
编辑:我添加了一个额外的功能 (updatePlayList) 所以你有播放列表 "out"。
您需要重新安排您的代码,使订阅调用 (socket.on) 和播放列表构建方法 (createSocketPlayList) 分开,如下所示:
var page = 'notification_playlist';
var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page });
socket.on('notification_playlist', updatePlayList);
function updatePlayList(data_playlist) {
var playlist = createSocketPlayList(data_playlist);
// Update your list wherever it is on the page.
}
function createSocketPlayList(data_playlist){
var usersList_playlist = "";
var musicTitle = "";
var myPlaylist = "";
$.each(data_playlist.users_playlist,function(index,user){
musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>";
usersList_playlist += "{ ";
usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'";
usersList_playlist += " },";
});
return usersList_playlist.substr(0, usersList_playlist.length-1);
}
我在这里使用节点 js 和 socket.io 我的 website.i 希望 return 值 'newString' 执行下面的 function.Now 我得到正确的function.But 中 'newString' 的值我需要它在函数之外。
<script>
function createSocketPlayList(){
var page = 'notification_playlist';
var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page });
socket.on('notification_playlist', function (data_playlist) {
var usersList_playlist = "";
var musicTitle = "";
var myPlaylist = "";
$.each(data_playlist.users_playlist,function(index,user){
musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>";
usersList_playlist += "{ ";
usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'";
usersList_playlist += " },";
});
var newString = usersList_playlist.substr(0, usersList_playlist.length-1);
});
}
</script>
编辑:我添加了一个额外的功能 (updatePlayList) 所以你有播放列表 "out"。
您需要重新安排您的代码,使订阅调用 (socket.on) 和播放列表构建方法 (createSocketPlayList) 分开,如下所示:
var page = 'notification_playlist';
var socket = io.connect('http://localhost:8000', { query: "from=<?php echo $_SESSION['userId']?>&page="+page });
socket.on('notification_playlist', updatePlayList);
function updatePlayList(data_playlist) {
var playlist = createSocketPlayList(data_playlist);
// Update your list wherever it is on the page.
}
function createSocketPlayList(data_playlist){
var usersList_playlist = "";
var musicTitle = "";
var myPlaylist = "";
$.each(data_playlist.users_playlist,function(index,user){
musicTitle = "<?php echo addslashes($objCommon->html2text($allMyPlayList['music_title']))?>";
usersList_playlist += "{ ";
usersList_playlist += "mp3:'<?php echo SITE_ROOT?>uploads/music/"+user.music_url+"',title:'"+musicTitle+" ',artist:'Sanjeev Darshan | © Eros International Media Ltd',rating:4, buy:'#',price:'0.99',duration:'',cover:'<?php echo SITE_ROOT?>uploads/music/"+user.music_thumb+"',releaseddate:'17-05-2015'";
usersList_playlist += " },";
});
return usersList_playlist.substr(0, usersList_playlist.length-1);
}