Javascript socket.io的返回值
在这里,我正在为我的网站使用node js和socket.io。我希望在执行下面的函数时返回'newString'的值。现在我在函数内部获得'newString'的正确值。但我需要在函数外部使用它Javascript socket.io的返回值,javascript,php,jquery,node.js,socket.io,Javascript,Php,Jquery,Node.js,Socket.io,在这里,我正在为我的网站使用node js和socket.io。我希望在执行下面的函数时返回'newString'的值。现在我在函数内部获得'newString'的正确值。但我需要在函数外部使用它 <script> function createSocketPlayList(){ var page = 'notification_playlist'; var socket = io.connect('http://localhost:8000
<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>
函数createSocketPlayList(){
var页面='通知\播放列表';
var socket=io.connect('http://localhost:8000“,{query:“from=&page=“+page}”);
socket.on('notification_playlist',函数(data_playlist){
var usersList_playlist=“”;
var musicTitle=“”;
var myPlaylist=“”;
$.each(数据\播放列表。用户\播放列表,功能(索引,用户){
musicTitle=“”;
usersList_playlist+=“{”;
usersList_playlist+=“mp3:'uploads/music/”+user.music_url+”,标题:“+musicTitle+”,艺术家:'Sanjeev Darshan |©Eros International Media Ltd',评级:4,购买:'.#',价格:'0.99',持续时间:'',封面:'uploads/music/“+user.music_thumb+”,发布日期:'17-05-2015';
usersList_playlist+=“},”;
});
var newString=usersList\u playlist.substr(0,usersList\u playlist.length-1);
});
}
编辑:我添加了一个额外的功能(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);
}
var页面='notification_playlist';
var socket=io.connect('http://localhost:8000“,{query:“from=&page=“+page}”);
socket.on('notification_playlist',updatePlayList');
函数updatePlayList(数据\播放列表){
var playlist=createSocketPlayList(数据播放列表);
//在页面上的任何位置更新列表。
}
函数createSocketPlayList(数据播放列表){
var usersList_playlist=“”;
var musicTitle=“”;
var myPlaylist=“”;
$.each(数据\播放列表。用户\播放列表,功能(索引,用户){
musicTitle=“”;
usersList_playlist+=“{”;
usersList_playlist+=“mp3:'uploads/music/”+user.music_url+”,标题:“+musicTitle+”,艺术家:'Sanjeev Darshan |©Eros International Media Ltd',评级:4,购买:'.#',价格:'0.99',持续时间:'',封面:'uploads/music/“+user.music_thumb+”,发布日期:'17-05-2015';
usersList_playlist+=“},”;
});
返回usersList\u playlist.substr(0,usersList\u playlist.length-1);
}