node.js – 如何从NodeJS服务器端调用客户端浏览器上的javascript函数?

我在NodeJS服务器端编程,我希望在客户端浏览器端调用 javascript函数.希望我可以在客户端浏览器端不时地从服务器端调用函数,就好像我只是在服务器端调用函数一样.

是否有某种形式或彗星或RPC可以做到这一点?

解决方法

我检查了Socket.IO,但结果却使用了Faye. Faye可能比您想要的功能更多,但它的设置和使用非常简单.我发现它比Socket.IO更直观.不是说Socket.IO看起来很难,但是Faye看起来更容易.

这是网站:

http://faye.jcoglan.com/

还有一个谷歌用户组,作者已经回复了我的几个问题.

你需要的是以下代码

节点方:

var faye = require('faye');
var faye_server = new faye.NodeAdapter({mount: '/faye',timeout: 120});

console.log('Firing up faye server. . . ');
faye_server.listen(8089);

//send message out every 1 second
setInterval( function()
{   
    var currentTime_secsSinceEpoch = new Date().getTime() / 1000;

    faye_server.getClient().publish('/heartbeat',{
        pageName: 'app.js',timeMessageSent_secs_since_epoch: currentTime_secsSinceEpoch,iFrame1CycleCount: iFrame1CycleCount

    });
},1000);

浏览器方面:

<script type='text/javascript'>
//create faye client
var faye_client = new Faye.Client('http://127.0.0.1:8089/faye');

var faye_message_subscription = faye_client.subscribe('/heartbeat',function(message)
{   
    //record the time message was received
    var receiveTime_secSinceEpoch = new Date().getTime() / 1000;

    console.log("Got heartbeat at " + receiveTime_secsSinceEpoch + "with a delay of " +
        receiveTime_secsSinceEpoch - message.currentTime_secsSinceEpoch + " secs");
    //Do something else important here!!
}
</script>

而已!现在,每当您的服务器发送“心跳”消息时,您的网页将调用我们指定的功能并向控制台发送消息.死简单.

Faye还有许多你可能想要使用的很酷的功能,但这主要是你想要的.

您可以非常轻松地将Faye附加到节点中的快速服务器,这使得它可以很好地与Web服务器配合使用.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...