我在我的服务器上设置了Node.js和Nginx.现在我想使用它,但是,在我开始之前有2个问题:
Node.js服务器有2个概念,其中一个更好:
一个.为需要它的每个网站创建单独的HTTP服务器.然后在程序开始时加载所有JavaScript代码,因此代码被解释一次.
湾 创建一个处理所有Node.js请求的Node.js服务器.这将读取所请求的文件并篡改其内容.因此,每个请求都会解释文件,但服务器逻辑要简单得多.
我不清楚如何正确使用Node.js.
我想在我的下一个项目中使用node.js,但我的老板不喜欢我们的竞争对手可以阅读源代码.
有没有办法保护JavaScript代码?
我对浏览器中的Peer-to-Peer连接感兴趣.由于这似乎可以通过WebRTC实现,我想知道它是如何工作的.
我已经阅读了一些解释并看到了关于它的图表,现在我很清楚,连接建立在服务器上工作.服务器似乎在愿意相互连接的客户端之间交换一些数据,以便它们可以启动直接连接,这与服务器无关.
但这是我不明白的特别之处.到目前为止,我认为创建连接的唯一方法是侦听计算机A上的端口并从计算机B连接到该端口.但在WebRTC中似乎并非如此.我认为没有一个客户端开始监听端口.不知何故,他们可以在不监听端口和接受连接的情况下创建连接.客户端A和客户端B都不会充当服务器.
但是怎么样?通过WebRTC服务器交换哪些数据,客户端可以使用它们相互连接?
谢谢你的解释:)
编辑
我找到了这篇文章.它与WebRTC无关,但我认为它回答了我的一部分问题.我不确定,很难.如果有人能向我解释并给我一些额外的链接,它仍然会很酷.
有没有办法像同步XMLHttpRequest一样以同步方式加载和执行javascript文件?
我目前正在使用同步XMLHttpRequest,然后使用eval,但调试该代码非常困难......
谢谢你的帮助!
更新
我现在试过这个:
的test.html
<html>
<head>
<script type="text/javascript">
var s = document.createElement("script");
s.setAttribute("src","script.js");
document.head.appendChild(s);
console.log("done");
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
的script.js
console.log("Hi");
Run Code Online (Sandbox Code Playgroud)
输出:完成嗨
所以它没有同步执行.任何想出"嗨"的想法首先出现?
更新2 其他示例
test.html(脚本标记内的代码)
var s = document.createElement("script");
s.setAttribute("src","script.js");
document.head.appendChild(s);
SayHi();
Run Code Online (Sandbox Code Playgroud)
的script.js
function SayHi(){
console.log("hi");
}
Run Code Online (Sandbox Code Playgroud)
输出:未捕获的ReferenceError:未定义SayHi
我知道用apply(obj,args)调用带有参数数组的函数的可能性; 有没有办法在创建函数的新实例时使用此功能?
我的意思是这样的:
function A(arg1,arg2){
var a = arg1;
var b = arg2;
}
var a = new A.apply([1,2]); //create new instance using an array of arguments
Run Code Online (Sandbox Code Playgroud)
我希望你明白我的意思...... ^^^
谢谢你的帮助!
解决了!
我得到了正确的答案.为了使答案适合我的问题:
function A(arg1,arg2) {
var a = arg1;
var b = arg2;
}
var a = new (A.bind.apply(A,[A,1,2]))();
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能创建一个只有Java的Android应用程序.没有XML,没有其他东西.
在Eclipse中,当我创建一个新的Android项目时,将自动生成Manifest xml文件和主布局xml文件.我可以删除这些文件并用Java文件替换它们吗?
我创建了一个节点模块,其中包含一个在安装后调用的构建脚本.构建脚本克隆git存储库并将其一些文件复制到另一个文件夹.问题:在npm install上,脚本没有获得足够的权限,我收到以下错误:
sh: ./build.js: Permission denied
如何为构建脚本提供足够的权限来完成其工作?
我希望用户可以做npm install mymodule
,然后构建脚本在任何系统上完成它的工作.
有任何想法吗?
可能重复:
Javascript如何找到调用函数?
嗨,大家好!
有没有办法this
从调用当前函数的函数中获取值?看这个:
function TraceMySelf(){
console.log(this);
}
function A(){
TraceMySelf();
console.log(this);
}
var a = new A();
Run Code Online (Sandbox Code Playgroud)
执行此代码时,控制台首先显示window
对象,然后显示a
对象.如何让代码显示a
对象两次,只更改第2行?我知道,我可以申请内的功能A
有this
,但那不是我想要的.
这可能吗?
谢谢你的帮助!
我打算创建一个基于WebGL的实时战略游戏,让玩家可以一起玩.我将使用Node.js创建游戏服务器,并使用websockets实现实时连接.
我已经打破了关于同步客户端的最佳概念的想法.
一种可能性是仅将用户的订单(移动单元,建筑物等)发送到服务器,服务器将它们发送给所有其他客户端.但在这里,我有延迟的问题.我认为游戏会以这种方式变得异步.
另一种可能性是在服务器上制作游戏.客户端仍然将指令发送到服务器,但服务器现在将所有单元和建筑物的所有已更改状态发送到客户端的间隔很长.这里的问题是数据量大,速度有多快......
您有其他想法或改进建议吗?
谢谢!