Hướng dẫn real time chat application in python - ứng dụng trò chuyện thời gian thực trong python

Hướng dẫn real time chat application in python - ứng dụng trò chuyện thời gian thực trong python


Có chuyện gì vậy Pythoneers! Đây là Vishesh Dvivingi và trong bài đăng trên blog này, tôi sẽ chỉ cho bạn cách bạn có thể tạo một ứng dụng trò chuyện thời gian thực trong Python, sử dụng mô-đun Tkinter và lập trình ổ cắm.

Blog này sẽ thảo luận về lập trình ổ cắm, mô -đun Tkinter và cách bạn có thể tích hợp cả hai.

Về ứng dụng

Kho lưu trữ của ứng dụng này bao gồm hai tệp Python, Server.py và Client.py. Server.py là tập lệnh chạy máy chủ, tất cả các máy khách sẽ sử dụng để liên lạc với nhau. Và Client.py sẽ được khách hàng sử dụng để kết nối với máy chủ và gửi tin nhắn cho các máy khách khác.

Vì vậy, chúng tôi sẽ bắt đầu bởi script server.py

Tạo Server.py

Trước hết, chúng tôi sẽ nhập tất cả các mô -đun cần thiết của Server.py

import socket
import threading

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

Tiếp theo, chúng tôi sẽ thiết lập một số biến

HOST = '127.0.0.1'
PORT = 1234 
LISTENER_LIMIT = 5
active_clients = []

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

Tiếp theo, chúng tôi sẽ thiết lập một số biến

Máy chủ và cổng ở đây xác định máy chủ và cổng mà máy chủ sẽ chạy, Listener_limit lưu trữ lượng máy khách có thể kết nối với máy chủ tại một thời điểm. Và cuối cùng, Active_Clents sẽ lưu trữ tất cả người dùng sẽ được kết nối với máy chủ ở mọi trường hợp

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

Tiếp theo, chúng tôi sẽ thiết lập một số biến

def send_message_to_client(client, message):

    client.sendall(message.encode())

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

Tiếp theo, chúng tôi sẽ thiết lập một số biến

def send_messages_to_all(message):

    for user in active_clients:

        send_message_to_client(user[1], message)

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

Tiếp theo, chúng tôi sẽ thiết lập một số biến

def client_handler(client):

    # Server will listen for client message that will
    # Contain the username
    while 1:

        username = client.recv(2048).decode('utf-8')
        if username != '':
            active_clients.append((username, client))
            prompt_message = "SERVER~" + f"{username} added to 
the chat"
            send_messages_to_all(prompt_message)
            break
        else:
            print("Client username is empty")

    threading.Thread(target=listen_for_messages, args=(client, 
username, )).start()

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.
Note: This function is also executed as a thread, for each new connected client.

def main():

    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


    try:
        server.bind((HOST, PORT))
        print(f"Running the server on {HOST} {PORT}")
    except:
        print(f"Unable to bind to host {HOST} and port 
{PORT}")

    server.listen(LISTENER_LIMIT)

    while 1:

        client, address = server.accept()
    print(f"Successfully connected to client {address[0]} {address[1]}")

    threading.Thread(target=client_handler, args=(client, )).start()


if __name__ == '__main__':
    main()

Nhập chế độ FullScreenen EXIT Mode FullScreen

Chúng tôi sẽ cần mô -đun ổ cắm để liên lạc với máy khách và mô -đun luồng để tạo một luồng sẽ tiếp tục nghe tin nhắn từ máy khách.

  1. Tiếp theo, chúng tôi sẽ thiết lập một số biến
  2. Máy chủ và cổng ở đây xác định máy chủ và cổng mà máy chủ sẽ chạy, Listener_limit lưu trữ lượng máy khách có thể kết nối với máy chủ tại một thời điểm. Và cuối cùng, Active_Clents sẽ lưu trữ tất cả người dùng sẽ được kết nối với máy chủ ở mọi trường hợp
  3. Tiếp theo, chúng tôi sẽ tạo chức năng nghe_for_messages
  4. def listen_for_messages(client, username):
    
        while 1:
    
            message = client.recv(2048).decode('utf-8')
            if message != '':
    
                final_msg = username + '~' + message
                send_messages_to_all(final_msg)
    
            else:
                print(f"The message send from client {username} is 
    empty")
    
  5. Chức năng này sẽ tiếp tục nghe tin nhắn từ các máy khách được kết nối. Trong trường hợp nếu nó nhận được một tin nhắn, nó sẽ gọi chức năng SEND_MESSAGE_TO_ALL để gửi tin nhắn nhận được đến tất cả các máy khách hiện đang được kết nối.

Tiếp theo, chúng tôi tạo chức năng send_message_to_client

Chức năng này được sử dụng để gửi tin nhắn đến một máy khách

Ứng dụng trò chuyện trong Python là gì?

Phòng trò chuyện là một giao diện cho phép hai hoặc nhiều người trò chuyện và gửi tin nhắn cho mọi người trong phòng. Trong hướng dẫn này, bạn sẽ học cách xây dựng một máy chủ phòng trò chuyện đơn giản và cho phép nhiều máy khách kết nối với nó bằng ổ cắm trong Python.an interface that allows two or more people to chat and send messages to everyone in the room. In this tutorial, you will learn how to build a simple chat room server and allow multiple clients to connect to it using sockets in Python.

Trò chuyện có phải là một ứng dụng thời gian thực không?

Trò chuyện, còn được gọi là trò chuyện trực tuyến hoặc trò chuyện internet, là một cách giao tiếp và tương tác trong thời gian thực trên internet. Giao tiếp này dựa trên tin nhắn văn bản. Hai hoặc nhiều người có thể giao tiếp và cũng gửi hình ảnh, video hoặc tệp âm thanh.a way of communication and interaction in real time on the Internet. This communication is based on text messages. Two or more people can communicate and also send pictures, videos or audio files.

Làm thế nào để bạn tạo một ứng dụng trò chuyện trong Python?

Các bước liên quan đến quá trình này như sau:..
Tạo ổ cắm ..
Giao tiếp địa chỉ ổ cắm ..
Tiếp tục chờ đợi một yêu cầu kết nối đến ..
Kết nối với khách hàng ..
Nhận tin nhắn ..
Giải mã người dùng đích và chọn ổ cắm ..
Gửi tin nhắn cho khách hàng dự định ..
Tiếp tục lặp lại Bước 5 & 6 theo mong muốn của người dùng ..

Làm cách nào để tạo một ứng dụng trò chuyện thời gian thực với Django?

Và thêm ứng dụng của bạn vào các ứng dụng đã cài đặt trong Cài đặt.py ...
Chat/URLS.Py: Điều này sẽ định tuyến ứng dụng Django đến các chế độ xem khác nhau trong ứng dụng ..
Tạo thư mục mẫu: Bên trong ứng dụng của bạn, tạo hai tệp bên trong Mẫu/trò chuyện có tên Chat.....
Routing.py: Điều này sẽ định tuyến các kết nối WebSocket đến người tiêu dùng ..