Heim >Web-Frontend >Front-End-Fragen und Antworten >Ist ws ein integriertes Modul von nodejs?

Ist ws ein integriertes Modul von nodejs?

青灯夜游
青灯夜游Original
2021-12-31 12:03:013086Durchsuche

ws ist kein integriertes Modul von nodejs. ws ist eine WebSocket-Bibliothek von nodejs, die zum Erstellen von Diensten verwendet werden kann. Sie muss über den Befehl „npm install ws“ installiert werden, bevor sie verwendet werden kann, es handelt sich also nicht um ein integriertes Modul von nodejs.

Ist ws ein integriertes Modul von nodejs?

Die Betriebsumgebung dieses Tutorials: Windows7-System, NodeJS-Version 12.19.0, DELL G3-Computer.

ws ist kein integriertes Modul von nodejs.

ws: Es handelt sich um eine WebSocket-Bibliothek für NodeJS, die zum Erstellen von Diensten verwendet werden kann. https://github.com/websockets/ws

nodejs verwendet das WS-Modul

Laden Sie zunächst das Websocket-Modul herunter und geben Sie

npm install ws

1.node.js ein, um den Server zu erstellen (ser .js). )

// 加载node上websocket模块 ws;
var ws = require("ws");

// 启动基于websocket的服务器,监听我们的客户端接入进来。
var server = new ws.Server({
	host: "127.0.0.1",
	port: 6080,
});

// 监听接入进来的客户端事件
function websocket_add_listener(client_sock) {
	// close事件
	client_sock.on("close", function() {
		console.log("client close");
	});

	// error事件
	client_sock.on("error", function(err) {
		console.log("client error", err);
	});
	// end 

	// message 事件, data已经是根据websocket协议解码开来的原始数据;
	// websocket底层有数据包的封包协议,所以,绝对不会出现粘包的情况。
	// 每解一个数据包,就会触发一个message事件;
	// 不会出现粘包的情况,send一次,就会把send的数据独立封包。
	// 如果我们是直接基于TCP,我们要自己实现类似于websocket封包协议就可以完全达到一样的效果;
	client_sock.on("message", function(data) {
		console.log(data);
		client_sock.send("Thank you!");
	});
	// end 
}

// connection 事件, 有客户端接入进来;
function on_server_client_comming (client_sock) {
	console.log("client comming");
	websocket_add_listener(client_sock);
}

server.on("connection", on_server_client_comming);

// error事件,表示的我们监听错误;
function on_server_listen_error(err) {

}
server.on("error", on_server_listen_error);

// headers事件, 回给客户端的字符。
function on_server_headers(data) {
	// console.log(data);
}
server.on("headers", on_server_headers);

2. Erstellen Sie einen Client (client.js) mit dem WS-Modul in node.js

var ws = require("ws");

// url ws://127.0.0.1:6080
// 创建了一个客户端的socket,然后让这个客户端去连接服务器的socket
var sock = new ws("ws://127.0.0.1:6080");
sock.on("open", function () {
	console.log("connect success !!!!");
	sock.send("HelloWorld1");
	sock.send("HelloWorld2");
	sock.send("HelloWorld3");
	sock.send("HelloWorld4");
	sock.send(Buffer.alloc(10));
});

sock.on("error", function(err) {
	console.log("error: ", err);
});

sock.on("close", function() {
	console.log("close");
});

sock.on("message", function(data) {
	console.log(data);
});

3. Erstellen Sie einen Web-Client (mit WebApi --->WebSocket) index.html

<!DOCTYPE html>
<html>
<head>
	<title>websocket example</title>
</head>
<body>
	<script>
	var ws = new WebSocket("ws://127.0.0.1:6080/index.html");
	
	ws.onopen = function(){
		alert("open");
		ws.send("WebSocket  hellowrold!!");
	};
	ws.onmessage = function(ev){
		alert(ev.data);
	};
	ws.onclose = function(ev){
		alert("close");
	};
	ws.onerror = function(ev){
		console.log(ev);
		alert("error");
	};
	</script>
</body>
</html>

Weitere Knoten Bitte besuchen Sie: nodejs-Tutorial! !

Das obige ist der detaillierte Inhalt vonIst ws ein integriertes Modul von nodejs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn