Hướng dẫn dùng socket.net webmail trong PHP

Tôi biết người đàn ông đấu tranh! Nhưng gần đây tôi đã làm việc khá nhiều với Workerman. Nếu bạn chưa vấp phải framework php này thì tốt hơn hết bạn nên kiểm tra điều này!

Vâng, Workerman là một khung công tác PHP hướng sự kiện không đồng bộ để dễ dàng xây dựng các ứng dụng mạng nhanh, có thể mở rộng. (Tôi vừa sao chép và dán nó từ trang web của họ hahahah http://www.workerman.net/en/ )

Cách dễ dàng để giải thích điều này là khi nói đến lập trình web socket, tất cả những gì bạn thực sự cần là có 2 tệp trong máy chủ của bạn hoặc máy chủ cục bộ (bất cứ nơi nào bạn đang làm việc).

  1. server.php (mã nguồn sẽ phản hồi tất cả các yêu cầu của khách hàng)

  2. client.php / client.html (mã nguồn sẽ thực hiện các nội dung yêu cầu)

Vì vậy, về cơ bản, bạn phải viết mã trước trên server.php và khởi động máy chủ. Thông thường, vì tôi đang sử dụng các cửa sổ làm tăng thêm nhiều khó khăn, tôi chạy máy chủ thông qua lệnh này -> php server.php start

Vâng nếu bạn đang sử dụng xampp. Đây là một cách để làm điều đó. Đi đến bất cứ nơi nào bạn muốn để đặt các tệp của mình. Trong trường hợp của chúng tôi, chúng tôi sẽ đưa các tệp vào

C: /xampp/htdocs/websocket/server.php

C: /xampp/htdocs/websocket/client.php hoặc client.html

Giả sử rằng bạn đã có các tệp đó trong máy chủ cục bộ của mình. Mở Git Bash hoặc Dòng lệnh hoặc Thiết bị đầu cuối của bạn hoặc bất kỳ cái nào bạn đang sử dụng và tải xuống các thư viện php tại đây.

https://github.com/walkor/Workerman

https://github.com/walkor/phpsocket.io

Tôi thường tải xuống thông qua trình soạn nhạc và chỉ tự động tải các tệp đó trong các tập lệnh php của mình.

Và cũng kiểm tra cái này. Điều này thực sự quan trọng ! Bạn cần libary javascript này để client.php hoặc client.html giao tiếp với server.php khi bạn chạy nó.

https://github.com/walkor/phpsocket.io/tree/master/examples/chat/public/socket.io-client

Tôi chỉ sao chép và dán thư mục socket.io-client đó ở cùng cấp với server.php và client.php của tôi

Đây là mã nguồn server.php

on('connection', function($socket)use($io){
    $socket->on('send message', function($msg)use($io){
        $io->emit('new message', $msg);
    });
});

Worker::runAll();

Và đây là client.php hoặc client.html sourcecode



    
        Chat
        
                
    
    
        

Một lần nữa, hãy mở dòng lệnh của bạn hoặc git bash hoặc terminal nơi bạn đặt tệp server.php của mình. Vì vậy, trong trường hợp của chúng tôi, đó là C: / xampp / htdocs / websocket / và nhập vào bắt đầu php server.php và nhấn enter.

Sau đó, truy cập trình duyệt của bạn và nhập http: //localhost/websocket/client.php để truy cập trang web của bạn. Sau đó, chỉ cần nhập bất kỳ thứ gì vào hộp văn bản đó và bạn sẽ thấy một websocket php cơ bản khi đang di chuyển!

Bạn chỉ cần nhớ. Trong lập trình web socket, nó chỉ cần một máy chủ và một máy khách. Chạy mã máy chủ trước và mở mã máy khách. Và bạn có nó rồi đấy! Hi vọng điêu nay co ich!

11 hữu ích 1 bình luận chia sẻ

Hôm nay, mình xin hướng dẫn các bạn sử dụng công nghệ Web Socket để đồng bộ dữ liệu Real time giữa ứng dụng website và ứng dụng winform.

Với công nghệ ngày nay, ứng dụng các bạn viết đều có thể sử dụng tương tác qua lại giữa các công nghệ khác nhau: giữa ứng dụng Winform và web hay Android, Ios...

Câu hỏi đặt ra là: nếu bạn vừa cập nhật dữ liệu từ trên giao diện website thì làm sao ứng dụng biết được và load dữ liệu thông tin vừa mới cập nhật lên ứng dụng. 

Có rất nhiều công nghệ để các bạn sử dụng: 

- Các bạn có thể sử dụng công nghệ Sql Dependency trong Sqlserver để biết được dữ liệu thay đổi. Vậy Sql dependency là gì? các bạn có thể tham khảo tại bài viết trước.

Hướng dẫn sử dụng Sql denpendency

- Trong bài viết này, mình xin ứng dụng các bạn sử dụng Websocket công nghệ không còn mới mẻ gì? nhưng vẫn ứng dụng được tốt, cho các yêu cầu các bạn cần sử dụng, để Real time.

Ngoài công nghệ Web socket các bạn có thể tham khảo sử dụng Nodejs. Nhưng trong bài viết này, mình sử dụng công nghệ Ratchet PHP để tạo Websocket. Các bạn có thể, vào truy cập vào trang web http://socketo.me/ để tìm hiểu về Reatchet.

Như hình bên dưới mình tạo webserver qua đường dẫn: ws://127.0.0.1:2000, và lắng nghe qua port 2000.

Giao diện Web Client điều khiển ứng dụng: 

Hướng dẫn dùng socket.net webmail trong PHP

Giao diện ứng dụng mình viết bằng VB.NET

Hướng dẫn dùng socket.net webmail trong PHP

Dưới đây là code của ứng dụng demo bằng VB.NET.

Trong bài viết, này cũng có sử dụng json để đọc lệnh sử dụng các bạn có thể tham khảo bài viết về các sử dụng json trong bài viết: 

Hướng dẫn lấy dữ liệu json từ website sử dụng Web Services

Imports System.ComponentModel
Imports System.Text
Imports Newtonsoft.Json
Imports WebSocket4Net

Partial Public Class Form1
    Inherits DevExpress.XtraEditors.XtraForm
    Shared Sub New()
        DevExpress.UserSkins.BonusSkins.Register()
        DevExpress.Skins.SkinManager.EnableFormSkins()
    End Sub
    Public Sub New()
        InitializeComponent()
    End Sub
    Private websocket As WebSocket4Net.WebSocket
    Private Sub SimpleButton1_Click(sender As Object, ev As EventArgs) Handles SimpleButton1.Click
        websocket = New WebSocket4Net.WebSocket(TextBox1.Text)
        AddHandler websocket.Opened, Sub(s, e) socketOpened(s, e)
        AddHandler websocket.Error, Sub(s, e) socketError(s, e)
        AddHandler websocket.Closed, Sub(s, e) socketClosed(s, e)
        AddHandler websocket.MessageReceived, Sub(s, e) socketMessage(s, e)
        AddHandler websocket.DataReceived, Sub(s, e) socketDataReceived(s, e)
        websocket.Open()
        Label2.Text = "Status: Connecting " & TextBox1.Text
    End Sub
    Public Sub listen(str As String)
        Label3.Text = str
    End Sub
    Sub socketOpened(s As Object, e As EventArgs)
        websocket.Send("{""action"":""message"",""username"":""chatwindow"",""msg"":""Hello World""}")
    End Sub
    Sub socketClosed(s As Object, e As EventArgs)

    End Sub
    Sub socketError(s As Object, e As SuperSocket.ClientEngine.ErrorEventArgs)

    End Sub
    Public Sub heynow()
        AxWindowsMediaPlayer1.URL = "heynow.mp3"
        AxWindowsMediaPlayer1.Ctlcontrols.play()
        setLabelTxt("Đang mở bài hát Hey Now MK2 - V-Angels", Label3)
    End Sub
    Public Sub faded()
        AxWindowsMediaPlayer1.URL = "faded.mp3"
        AxWindowsMediaPlayer1.Ctlcontrols.play()
        setLabelTxt("Đang mở bài hát Faded - Alan Walker", Label3)
    End Sub
    Public Sub tatnhac()
        AxWindowsMediaPlayer1.Ctlcontrols.stop()
        setLabelTxt("Bạn đang tắt nhạc", Label3)
    End Sub
    Public Sub socketMessage(s As Object, e As WebSocket4Net.MessageReceivedEventArgs)
        Dim m As Message = JsonConvert.DeserializeObject(Of Message)(e.Message)
        If m.msg = "heynow" Then
            heynow()
        ElseIf m.msg = "faded" Then
            faded()
        ElseIf m.msg = "mo_word" Then
            Process.Start("winword")
            setLabelTxt("Yêu cầu mở chương trình Ms - Word", Label3)
        ElseIf m.msg = "mo_paint" Then
            Process.Start("mspaint")
            setLabelTxt("Yêu cầu mở chương trình MSPaint", Label3)
        ElseIf m.msg = "tatungdung" Then
            Application.Exit()
        ElseIf m.msg = "tatnhac" Then
            tatnhac()
        Else
            setLabelTxt("Cú pháp không đúng", Label3)
        End If
    End Sub
    Sub socketDataReceived(ss As Object, e As WebSocket4Net.DataReceivedEventArgs)

    End Sub
    Public Shared Sub setLabelTxt(ByVal text As String, ByVal lbl As Label)
        If lbl.InvokeRequired Then
            lbl.Invoke(New setLabelTxtInvoker(AddressOf setLabelTxt), text, lbl)
        Else
            lbl.Text = text
        End If
    End Sub
    Public Delegate Sub setLabelTxtInvoker(ByVal text As String, ByVal lbl As Label)
End Class
Public Class Message
    Public Property action() As String
        Get
            Return m_action
        End Get
        Set
            m_action = Value
        End Set
    End Property
    Private m_action As String
    Public Property username() As String
        Get
            Return m_username
        End Get
        Set
            m_username = Value
        End Set
    End Property
    Private m_username As String
    Public Property msg() As String
        Get
            Return m_msg
        End Get
        Set
            m_msg = Value
        End Set
    End Property
    Private m_msg As String
End Class

Video Demo Ứng dụng:

Chúc các bạn thành công. Mọi câu hỏi thắc mắc đến bài viết xin truy cập http://hoidap.laptrinhvb.net để được support.

Hướng dẫn dùng socket.net webmail trong PHP

ĐỪNG QUÊN LIKE AND SHARE NHA CÁC BẠN. 

CÁM ƠN CÁC BẠN ĐÃ THEO DÕI.

Các bạn có thể download toàn bộ Source code gồm: Webserver, Webclient và ứng dụng demo theo đường link bên dưới

LInk Download

NGUYỄN THẢO

Founder at LaptrinhVB.net

★★★★★

♥ Tình yêu thương chẳng hề hư mất bao giờ. (Cr 13,4)

=========================================================================

My skills includes .NET(C#, VB.NET), DevExpress, Java, Android, PHP,

Python, Sqlserver, Mysql, Reactjs, Dart, Flutter, API services and lot more...

Phone/Zalo/Telegram/WhatsApp: +84.933.913.122

Email: 

Facebook: https://fb.com/Lewandowski28031988

Youtube Channel: https://www.youtube.com/c/CTutorialsTips

Hướng dẫn dùng socket.net webmail trong PHP
 

Buy me a cup of beer

Hướng dẫn dùng socket.net webmail trong PHP
       
Hướng dẫn dùng socket.net webmail trong PHP
Hướng dẫn dùng socket.net webmail trong PHP

Hướng dẫn dùng socket.net webmail trong PHP

=========================================================================

Hướng dẫn dùng socket.net webmail trong PHP

Đăng bởi: Thảo meo - Lượt xem: 10693 22:35:28, 21/08/2016VB.NET   In bài viết