Strona NodeJS z WebSocket

Strona NodeJS z WebSocket
R1
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 6 lat
  • Postów:22
0

Witam,
czy tworzenie stron w NodeJS z tylko WebSocket bez jakiegoś Express.JS / Hapi.JS / robienia API jest poprawne?
Mam tak - Po stronie użytkownika za pomocą JavaScript przeglądarka łączy się z serwerem i przy np. naciśnięciu przycisku przesyła dane ze strony do serwera, a ten w odpowiedzi przez WebSocket zwraca użytkownikowi dane.

JavaScript na stronie:

Kopiuj
// Odbieranie danych z serwera
var connection = new WebSocket('ws://ADRES:3000');
		connection.onmessage = function (event) { 

		obj = JSON.parse(event.data);
		
		if(obj.cos[0].cos)
		{
			// pokaz cos na stronie
		}

  }

// Wysylanie danych na serwer

connection.send(JSON.stringify({
			   id: 1,
			   text: "jakis text",
	}));

NodeJS na serwerze

Kopiuj
const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 3000 });

// Odebranie danych
wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: ', message);

      // Wysłanie danych
    ws.send('something');
  });

});

Działa wszystko fajnie, tylko wszędzie, gdzie zobaczę w internecie poradniki NodeJS to widzę Express.JS lub inne frameworki. Czy zatem robienie strony do komunikacji real-time samym WebSocketem, tak jak pokazałem to wyżej jest poprawne?

mr_jaro
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

Zależy od tego co tak właściwie robisz. Ja napisałem w ten sposób pewien prosty system telemetryczny, jedna podstrona, kilka opcji do zmiany cała komunikacja oprócz wczytania html, css, js leci po ws. no ale to telemetria więc dane lecą cały czas na żywo.


It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
R1
Na początku standardowa strona - formularze typu wysyłanie wiadomości na serwer, który je weryfikuje i w razie błędów zwraca błąd użytkowniko. Wiem, że dałoby się to zrobić po prostu w PHP, ale chcę całość postawić na NodeJS. Do tego pewnie jakiś czat, wyświetlanie danych na żywo dla połączonych osób itp.
mr_jaro
@robotox1: to takiego czegoś całościowo na ws bym nie stawiał
R1
czyli lepiej to zrobić w ExpressJS / HapiJS, czy w ogóle zrezygnować dla standardowych rzeczy z NodeJS i użyć go tylko dla czatu i komunikacji real-time ?
mr_jaro
Nikt ci nie karze rezygnować z noda, po prostu ws używaj do typowego realtime
R1
Ok, dzięki za pomoc
DP
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:159
0

Co ma WS do API albo frameworka webowego? Chcesz napisać całą aplikację łączącą się przez WS? Może chcesz napisać API Gateway tylko dla WS?

R1
Chcę napisać większość rzeczy na stronie łączące się przez WS np. użytkownik wypełnia formularz i wysyła go na serwer przez WS, serwer sprawdza czy jest poprawny i odsyła użytkownikowi odpowiedź przez WS. Działać to działa, ale nie wiem czy jest to poprawne rozwiązanie i przy większej ilości użytkowników nie pojawią sie problemy.
DP
Czemu nie użyjesz socket.IO?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.