Jak zbudować aplikację do czatu w czasie rzeczywistym Next.js
Published: 2024-01-24 16:14:29

Witamy w naszym samouczku dotyczącym tworzenia aplikacji do czatu w czasie rzeczywistym przy użyciu Next.js i PubNub. Ten przewodnik pokaże, jak stworzyć wysoce interaktywną aplikację czatu z płynnym doświadczeniem użytkownika. Wykorzystując moc Next.js, popularnego frameworka zbudowanego na bazie [Node.js](https://nodejs.org/en/)wraz z możliwościami PubNub w czasie rzeczywistym, będziesz w stanie łatwo opracować aplikację do czatowania z pełnym stosem. Zaczynajmy!

**Dlaczego warto używać Next.js do tworzenia aplikacji do czatu?**
------------------------------------------------------------------

Next.js jest [open-source](https://nextjs.org/)solidny framework JavaScript oparty na React, który upraszcza tworzenie aplikacji React renderowanych na serwerze. Jest idealny do tworzenia aplikacji do czatowania, oferując kilka korzyści, które usprawniają proces rozwoju.

### **Korzyści z używania Next.js do czatu w czasie rzeczywistym**

1.  **Renderowanie po** stronie serwera: Next.js obsługuje renderowanie po stronie serwera (SSR) po wyjęciu z pudełka, poprawiając wydajność aplikacji czatu i SEO. SSR umożliwia szybkie i wydajne ładowanie aplikacji, nawet przy wolnych połączeniach.
    
2.  **Automatyczne dzielenie kodu**: Next.js automatycznie optymalizuje aplikację czatu, dzieląc kod na mniejsze fragmenty, dzięki czemu użytkownicy ładują tylko niezbędne części aplikacji. Zapewnia to szybsze i bardziej responsywne działanie.
    
3.  **Zintegrowane środowisko programistyczne**: Dzięki Next.js możesz korzystać z preferowanych narzędzi, takich jak CSS-in-JS, TypeScript lub GraphQL. Ta elastyczność pozwala stworzyć aplikację czatu, która najlepiej odpowiada Twoim potrzebom.
    
4.  **Aktualizacje w czasie rzeczywistym**: Po sparowaniu z PubNub, Next.js umożliwia funkcję czatu w czasie rzeczywistym z niskim opóźnieniem, umożliwiając użytkownikom natychmiastowe wysyłanie i odbieranie wiadomości czatu. PubNub's [API czatu PubNub](https://www.pubnub.com/guides/the-complete-guide-to-chat-apis/) ułatwia implementację funkcji takich jak powiadomienia, historia wiadomości i obecność.
    
5.  **Łatwe wdrażanie**: Przy minimalnej konfiguracji aplikacje Next.js można wdrażać na różnych platformach, takich jak AWS, Vercel lub Netlify. Ta łatwość wdrażania pozwala skupić się na tworzeniu aplikacji czatu, zamiast martwić się o infrastrukturę.
    

Używając Next.js do swojej aplikacji czatu, skorzystasz z jego zaawansowanych funkcji i płynnej integracji z PubNub. Razem stanowią one doskonałą podstawę do zbudowania aplikacji do czatu w czasie rzeczywistym, która jest zarówno wydajna, jak i skalowalna.

**Jak zbudować aplikację do czatu w czasie rzeczywistym Next.js**
-----------------------------------------------------------------

Konfiguracja projektu Next.js: Najpierw należy utworzyć nową aplikację Next.js za pomocą `create-next-app`.

Zainstalować**PubNub SDK**: Aby zintegrować funkcjonalność PubNub w czasie rzeczywistym z aplikacją czatu, musisz zainstalować PubNub JavaScript SDK za pomocą npm. Uruchom następujące polecenie, aby dodać go do projektu:

```js
npm install pubnub
```

**Configure Pub**Nub: Następnie skonfiguruj swoje konto PubNub, aby uzyskać klucze API. Możesz [założyć bezpłatne konto tutaj](https://admin.pubnub.com/#/register). Po uzyskaniu kluczy API zapisz je w pliku .env:

```js
PUBNUB_PUBLISH_KEY=your-publish-key
PUBNUB_SUBSCRIBE_KEY=your-subscribe-key
```

**Inicjalizacja obiektu PubNub:** Teraz zainicjalizujemy obiekt PubNub, który pozwoli nam później wysyłać i odbierać wiadomości w kanałach.

```js
// pubnub.js

import PubNub from 'pubnub';

const pubnub = new PubNub({
  publishKey: process.env.NEXT_PUBLIC_PUBNUB_PUBLISH_KEY,
  subscribeKey: process.env.NEXT_PUBLIC_PUBNUB_SUBSCRIBE_KEY,
  uuid: "yourUniqueUserId" // Unique identifier for each user
});

export default pubnub;
```

**Tworzenie komponentów cz**atu: Teraz nadszedł czas na stworzenie komponentów frontendowych dla aplikacji czatu. Używając React Hooks i CSS, stworzymy komponenty dla wejścia czatu i listy wiadomości. Hooki useState i useEffect zajmą się zarządzaniem stanem i efektami ubocznymi komponentów.

**Komponent wejści**owy czatu: Dla użytkowników do wpisywania i wysyłania wiadomości.

```js
// ChatInput.js

import React, { useState } from 'react';
import pubnub from './pubnub';

const ChatInput = () => {
  const [message, setMessage] = useState('');

  const sendMessage = () => {
    if (message) {
      pubnub.publish({
        channel: 'chat-channel',
        message: { sender: pubnub.getUUID(), content: message }
      });
      setMessage('');
    }
  };

  return (
    <div>
      <input
        type="text"
        value={message}
        onChange={(e) => setMessage(e.target.value)}
        placeholder="Type your message here"
      />
      <button onClick={sendMessage}>Send</button>
    </div>
  );
};

export default ChatInput;
```

Chat**Messages** Component: Do wyświetlania przychodzących wiadomości.

```js
// ChatMessages.js

import React, { useEffect, useState } from 'react';
import pubnub from './pubnub';

const ChatMessages = () => {
  const [messages, setMessages] = useState([]);

  useEffect(() => {
    pubnub.subscribe({ channels: ['chat-channel'] });
    pubnub.addListener({
      message: (event) => {
        setMessages((msgs) => [...msgs, event.message]);
      }
    });

    return () => {
      pubnub.unsubscribeAll();
    };
  }, []);

  return (
    <div>
      {messages.map((msg, index) => (
        <div key={index}>{msg.content}</div>
      ))}
    </div>
  );
};

export default ChatMessages;
```

**Wdrożenie funkcji czatu w czasie rzeczywistym**: Mając te komponenty na miejscu, zintegrowałeś już funkcjonalność czatu w czasie rzeczywistym PubNub, używając PubNub SDK do wysyłania wiadomości i subskrybowania kanałów.

Wdrożenie**uwierzytelniania (auth)**: Aby zabezpieczyć aplikację czatu, należy zaimplementować uwierzytelnianie użytkowników. Możesz użyć różnych metod uwierzytelniania, takich jak tokeny JWT lub dostawcy OAuth, tacy jak Google lub Facebook. Pamiętaj, aby zabezpieczyć punkty końcowe po stronie serwera i komponenty po stronie klienta za pomocą odpowiednich kontroli uwierzytelniania.

**Styl aplikacji** czatu: Wreszcie, możesz dostosować wygląd swojej aplikacji czatu za pomocą CSS lub dowolnego preferowanego podejścia do stylizacji. Możesz także użyć bibliotek komponentów, takich jak Material-UI lub Bootstrap, aby przyspieszyć ten proces.

Po wykonaniu tych kroków będziesz mieć w pełni funkcjonalną aplikację do czatowania w czasie rzeczywistym zbudowaną na Next.js i zasilaną przez PubNub. Dodatkowe zasoby, kody źródłowe i przykłady można znaleźć w naszej [dokumentacji](https://www.pubnub.com/docs/) które pomogą ci dodać więcej funkcji i dopracować aplikację czatu.

**Przykłady aplikacji czatu Next.js**
-------------------------------------

Aby zainspirować projekt aplikacji do czatu, oto kilka przykładów aplikacji do czatu w czasie rzeczywistym zbudowanych przy użyciu Next.js i PubNub. Przykłady te pokazują wszechstronność i skalowalność Next.js w połączeniu z możliwościami przesyłania wiadomości w czasie rzeczywistym PubNub.

1.  **Aplikacja** do czatu grupowego: Aplikacja do czatu grupowego, w której użytkownicy mogą dołączać do różnych pokojów rozmów, wysyłać wiadomości i sprawdzać, kto jest online. Samouczek dotyczący tworzenia podobnej aplikacji przy użyciu Node.js i PubNub można znaleźć tutaj [tutaj](https://www.pubnub.com/blog/building-chat-application-using-node-js/).
    
2.  **Web-Based Chat App**: Internetowa aplikacja do czatu, która pozwala użytkownikom wysyłać wiadomości i udostępniać pliki innym. Ta aplikacja demonstruje integrację funkcji czatu w czasie rzeczywistym z aplikacją internetową przy użyciu PubNub. Zapoznaj się z samouczkiem [tutaj](https://www.pubnub.com/blog/web-based-chat-application/).
    
3.  **Aplikacja Chatbot**: Aplikacja czatu, która integruje chatbota opartego na sztucznej inteligencji, takiego jak GPT-3 OpenAI, aby odpowiadać na pytania użytkowników i zapewniać im pomoc. Samouczek dotyczący tworzenia aplikacji chatbot z GPT-3 i PubNub można znaleźć [tutaj](https://www.pubnub.com/blog/building-a-chatbot-with-openai-gpt3-and-pubnub/).
    
4.  Aplikacja czatu**obsługi klienta**: Aplikacja do czatowania z obsługą klienta, która łączy użytkowników z agentami pomocy technicznej w czasie rzeczywistym, umożliwiając im szybkie i skuteczne rozwiązywanie problemów. Ta aplikacja prezentuje funkcje PubNub w czasie rzeczywistym w kontekście obsługi klienta.
    

Przykłady te służą jako punkt wyjścia do stworzenia własnej aplikacji czatu Next.js. Korzystając z Next.js i PubNub, możesz tworzyć różnorodne aplikacje czatu dostosowane do różnych przypadków użycia, od prostych platform komunikacyjnych po zaawansowane chatboty oparte na sztucznej inteligencji.

**Rozpoczęcie pracy z PubNub dla aplikacji czatu**
--------------------------------------------------

Aby rozpocząć pracę z PubNub dla aplikacji czatu w czasie rzeczywistym, wykonaj następujące kroki:

1.  Załóż **konto** PubNub: Najpierw zarejestruj [darmowe konto PubNub](https://dashboard.pubnub.com/signup) aby uzyskać klucze API. Klucze API są niezbędne do integracji usług przesyłania wiadomości w czasie rzeczywistym PubNub z aplikacją czatu.
    
2.  **Zapoznaj się z dokumentacją** PubNub: Zapoznaj się z dokumentacją [dokumentacją PubNub](https://www.pubnub.com/docs/) aby lepiej zrozumieć różne dostępne funkcje, usługi i zestawy SDK. Dokumentacja zawiera kompleksowe przewodniki i samouczki, które pomogą z powodzeniem zintegrować PubNub z aplikacją czatu.
    
3.  **Wybór** PubNub SDK: PubNub oferuje zestawy SDK dla różnych języków i platform, w tym JavaScript, Node.js, React, Angular i wielu innych. W przypadku aplikacji czatu Next.js warto skorzystać z zestawu [PubNub JavaScript SDK](https://www.pubnub.com/docs/web-javascript/pubnub-javascript-sdk).
    
4.  **Integracja PubNub z aplikacją** czatu: Po wybraniu odpowiedniego zestawu SDK postępuj zgodnie z instrukcją [przewodnik szybkiego startu](https://www.pubnub.com/docs/web-javascript/quick-start-guide) aby zintegrować PubNub z aplikacją czatu. Będziesz musiał zainicjować instancję PubNub za pomocą kluczy API, a następnie zaimplementować niezbędne funkcje, takie jak wysyłanie wiadomości, subskrybowanie kanałów i zarządzanie obecnością użytkowników.
    
5.  Przetestuj**swoją** aplikację czatu: Podczas tworzenia aplikacji czatu należy ją dokładnie przetestować, aby upewnić się, że funkcja przesyłania wiadomości w czasie rzeczywistym działa zgodnie z oczekiwaniami.
    
6.  **Wdrożenie** aplikacji czatu: Po zbudowaniu i przetestowaniu aplikacji czatu, należy wdrożyć ją na preferowanej platformie hostingowej. Aplikacje Next.js można wdrażać na różnych platformach, takich jak Vercel, Netlify lub AWS.
    

Wykonując te kroki, będziesz na dobrej drodze do stworzenia solidnej aplikacji do czatowania w czasie rzeczywistym opartej na Next.js i PubNub. Zapoznaj się z dokumentacją [Dokumentacja PubNub](https://www.pubnub.com/docs/) lub [github](https://github.com/PubNubDevelopers) aby uzyskać dodatkowe wskazówki i wsparcie podczas całej podróży programistycznej.

Jak PubNub może ci pomóc?
=========================

Ten artykuł został pierwotnie opublikowany na [PubNub.com](https://www.pubnub.com/blog/how-to-build-a-next-js-real-time-chat-application/)

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Podstawą naszej platformy jest największa w branży i najbardziej skalowalna sieć komunikacyjna w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub
-------------

Sprawdź [Live Tour](https://www.pubnub.com/tour/introduction/), aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Załóż [konto](https://admin.pubnub.com/signup/) PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij
----------

[Dokumenty](https://www.pubnub.com/docs) PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub [zestawu SDK](https://www.pubnub.com/docs).