我想知道,WebSocket()构造函数是原生Javascript的一部分吗?或者它是node.js的"ws“模块的一部分?
如果它是"ws“模块的一部分,我会感到困惑,因为我正在参加lynda.com培训课程,而这是我和我的讲师设置的客户端js文件:
var ws = new WebSocket("ws://localhost:3000");
ws.onopen = function() {
setTitle("Connected to Cyber Chat");
};
ws.onclose = function() {
setTitle("DISCONNECTED");
};
ws.onmessage = function(payload) {
printMessage(payload.data);
};
document.forms[0].onsubmit = function () {
var input = document.getElementById('message')
ws.send(input.value);
input.value = '';
};
function setTitle(title) {
document.querySelector('h1').innerHTML = title;
}
function printMessage(message) {
var p = document.createElement('p');
p.innerText = message;
document.querySelector('div.messages').appendChild(p);
}
所以在我看来,WebSocket()构造器必须是一个原生Javascript构造器,它在参数中提供的url中查找Websocket服务器,因为没有任何东西将这个文件引用到这个项目文件夹中的"ws“节点模块。
发布于 2018-06-30 08:58:33
webSocket不是Javascript ECMA标准的一部分。它不是Javascript本身的标准部分。在定义Javascript语言的EMCAScript standard中,您将发现根本没有提到它。
它有自己的own standard for the webSocket protocol,然后浏览器和ws库(以及其他库)提供了一个符合该标准的实现。浏览器使用的应用程序接口是由the W3C in a standards process开发的,但这完全独立于Javascript本身。
但是,如果您要获取一个普通的JS引擎,比如V8引擎,那么在V8引擎中就不会有webSocket实现。例如,这就是为什么node.js没有内置webSocket实现的原因。它不是V8 Javascript引擎的一部分。
https://stackoverflow.com/questions/51110845
复制相似问题