ForgeTotal.js 5
ro

Total.js 5

Conectarea la un server WebSocket din Node

Total.js 5 · total5@0.0.19 websocketrealtimeintegrations Executată cu Total.js 5

WEBSOCKETCLIENT(function(client) {}) îți dă un client. Apelează client.connect(url) cu o adresă ws:// sau wss://, ascultă cu client.on('open' | 'message' | 'close' | 'error', fn) și trimite cu client.send(object); obiectele călătoresc ca JSON. Folosește client.headers și client.cookies ca să te autentifici înainte de conectare și client.close() ca să te deconectezi.

Exemplul se conectează la un socket echo al propriei aplicații; în cod real îndreapt-o către orice server WebSocket.

controllers/echo.js
exports.install = function() {
	ROUTE('SOCKET /echo/', echo);
	ROUTE('GET /relay/', relay);
};

function echo() {
	this.on('message', function(client, message) {
		client.send({ echo: message.text });
	});
}

function relay($) {

	WEBSOCKETCLIENT(function(client) {

		client.connect($.hostname('/echo/').replace('http', 'ws'));

		client.on('open', function() {
			client.send({ text: 'ping' });
		});

		client.on('message', function(message) {
			client.close();
			$.json(message);
		});

		client.on('error', function(err) {
			$.invalid(err + '');
		});
	});
}