gpt4 book ai didi

node.js - now.js 还没有准备好

转载 作者:搜寻专家 更新时间:2023-11-01 00:46:30 26 4
gpt4 key购买 nike

我有点问题。我正在尝试使用 node.js/express.js/now.js 创建一个动态网络应用程序。我已按照 http://nowjs.com/download 的小示例代码中所示完成所有操作,没有成功,客户端 now.js 脚本正确托管,但 now.ready(..) 永远不会触发。唯一的区别是我使用 express,而我用于初始化 now.js 的服务器是 https。

你有什么想法会导致它不起作用吗?

服务器端:

var server = express.createServer(..);
..
server.listen(port, function() {..});
var nowjs = require('now');
var everyone = nowjs.initialize(server);
everyone.now.log = function(msg) { console.log(msg); }

客户端:

<script type="text/javascript" src="/nowjs/now.js"></script>
<script type="text/javascript">
now.ready(function() { now.log('asd'); alert('asd'); });
</script>

非常感谢任何帮助!

最好的,科内尔

最佳答案

嗯,找到答案了。长答案:now.js 在确定 socket.io 应该通信的通信端口时有问题。此问题似乎仅在使用默认 https 端口 (443) 时出现。

我找到了两个解决方案,一个丑陋的: https://groups.google.com/forum/?fromgroups=#!topic/nowjs/8cO9D77tN2o

基本上你需要在 now/lib/fileServer.js 编辑 now.js 的源代码并替换

var hostPort =  options['port'] || host[1] || '80';

var hostPort =  options['port'] || host[1] || ((request.headers.referer.split(':')[0] === 'https') ? '443' : '80');

更好的方法是将端口选项设置为 socket.io。幸运的是,这是由 now.js 支持的:

var everyone = nowjs.initialize(server, {port: port, socketio: {transports: ['xhr-polling', 'jsonp-polling']}});

我希望这能帮助遇到同样问题的其他人,也希望稍后在 now.js 中修复此行为。

最好的问候:Kornel

关于node.js - now.js 还没有准备好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12056914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com