国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】

這篇具有很好參考價(jià)值的文章主要介紹了基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

博主介紹:?java資深開發(fā)工程師、Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、專注于Java技術(shù)領(lǐng)域和學(xué)生畢業(yè)項(xiàng)目實(shí)戰(zhàn),面試講解跟進(jìn),高校老師/講師/同行交流合作?

胡廣愿景:

"比特星球",致力于幫助底層人員找到工作,讓每個(gè)底層人員都能找到屬于自己的星球。

拓展學(xué)習(xí)領(lǐng)域,獲取社會(huì)知識(shí),讓你更好地面對(duì)職業(yè)挑戰(zhàn)。與此同時(shí),我們將實(shí)時(shí)關(guān)注社會(huì)熱點(diǎn),分享最新科技動(dòng)態(tài),激勵(lì)你不斷進(jìn)步。加入比特星球,共同構(gòu)建一個(gè)互助的學(xué)習(xí)社區(qū)。

???? 感興趣的可以先收藏起來???? 不然下次找不到喲

大家在畢設(shè)選題,項(xiàng)目以及論文編寫、就業(yè)面試等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人

??文末獲取源碼聯(lián)系??

??文末獲取源碼聯(lián)系??

??文末獲取源碼聯(lián)系??

?大家好,我叫胡廣,廢話不多說咱們直接進(jìn)入正題?。?!

socket科普

參考《Socket通信原理》https://www.cnblogs.com/wangcq/p/3520400.html

整體流程圖

我們制作的這個(gè)實(shí)時(shí)在線聊天系統(tǒng)分為客戶端、服務(wù)端,

兩個(gè)步驟:

1、連接注冊(cè)

客戶端往服務(wù)端發(fā)起注冊(cè)請(qǐng)求,服務(wù)端將客戶端的地址、端口存入HashSet在內(nèi)存中緩存起來

2、消息處理(聊天功能)

客戶端發(fā)送消息至服務(wù)端,服務(wù)端處理消息格式私密消息格式為 @targetUser(私密用戶名) 消息內(nèi)容。如果不為此格式那么就向除自己以外的用戶都發(fā)送消息

整個(gè)的實(shí)現(xiàn)原理用一張圖即可解釋

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

相比你看到了此文章這里,基本有個(gè)大概的了解了吧

接下來就到了你最期待的時(shí)候了,沒錯(cuò)就是實(shí)現(xiàn)代碼,哈哈哈,我不知道有多少人是為了代碼過來的,可否給我點(diǎn)個(gè)免費(fèi)的小贊和收藏呢,胡廣拜謝了。

如果你也是底層程序員正在水生活熱的生活中迷茫,感到就業(yè)困難,面試少,可以到此文章末尾的公眾號(hào)聯(lián)系到我哦,我?guī)湍阋黄鹂朔矍暗睦щy。《同是天涯淪落人,相逢何必曾相識(shí)》

實(shí)現(xiàn)代碼

客戶端代碼

1.這里使用 Socket 類創(chuàng)建一個(gè)與指定服務(wù)器地址和端口的socket連接

2.通過 BufferedReaderPrintWriter 分別設(shè)置輸入和輸出流。reader 用于讀取服務(wù)器的消息,writer 用于向服務(wù)器發(fā)送消息。consoleReader 用于讀取用戶在控制臺(tái)輸入的消息

3.使用一個(gè)線程來不斷地從服務(wù)器接收消息,并將其顯示在客戶端的控制臺(tái)上。

4.在主線程中,用戶可以輸入消息,程序?qū)⑵浒l(fā)送到服務(wù)器。如果用戶輸入 "exit",則退出循環(huán),關(guān)閉連接

5.異常處理部分用于捕捉可能發(fā)生的 IOException 異常,并打印異常信息。

package org.sqs.socketchat.client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * 通信客戶端ds
 */
public class ChatClient {
    public static void main(String[] args) {


        String serverHost = "127.0.0.1";
        int serverPort = 8080;

        try (Socket socket = new Socket(serverHost, serverPort);
             //字符流讀取
             BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             //輸出字符流
             PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
             //讀取控制臺(tái)么
             BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in))) {

            // 啟動(dòng)接收消息線程
            new Thread(() -> {
                try {
                    while (true) {
                        String message = reader.readLine();
                        if (message == null) {
                            break;
                        }
                        System.out.println(message);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }).start();

            // 發(fā)送用戶輸入的消息
            while (true) {
                String userInput = consoleReader.readLine();
                //退出鏈接
                if (userInput.equals("exit")) {
                    break;
                }
                //往服務(wù)端輸出消息
                writer.println(userInput);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

服務(wù)端代碼

消息處理器

1.當(dāng)客戶端發(fā)送消息時(shí),服務(wù)端會(huì)檢查消息是否以 "@" 開頭,如果是,則認(rèn)為是私密消息。私密消息格式為 @targetUser message。如果消息格式正確,服務(wù)端會(huì)將私密消息發(fā)送給目標(biāo)用戶,否則會(huì)通知發(fā)送者用戶不存在。廣播消息給所有用戶的方法和之前相同。這只是一個(gè)簡(jiǎn)單的實(shí)現(xiàn),實(shí)際場(chǎng)景中可能需要更復(fù)雜的邏輯和安全性保障。

package org.sqs.socketchat.server;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Set;

/**
 * 消息處理
 */
public class ChatHandler implements Runnable{
    //socket客戶端
    private Socket clientSocket;
    //客戶端集
    private Set<ChatHandler> handlers;
    //緩沖輸入字符流
    private BufferedReader reader;
    //輸出字符流
    private PrintWriter writer;
    //添加用戶名字段
    private String username;

    /**
     * 消息處理
     * @param socket
     * @param handlers
     */
    public ChatHandler(Socket socket, Set<ChatHandler> handlers) {
        this.clientSocket = socket;
        this.handlers = handlers;

        try {
            //輸入流與輸出流
            reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            writer = new PrintWriter(socket.getOutputStream(), true);
            // 為每個(gè)客戶端生成一個(gè)唯一的用戶名(可根據(jù)實(shí)際需求修改)這里用的是當(dāng)前時(shí)間,小伙伴可以用UUID來代替都行
            this.username = "User" + System.currentTimeMillis();
            sendMessage("您的客戶端連接名為 " + username);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 獲取用戶名
    public String getUsername() {
        return username;
    }

    /**
     * 開啟消息處理
     */
    @Override
    public void run() {
        try {
            while (true) {
                //讀取消息
                String message = reader.readLine();
                //消息非空校驗(yàn)
                if (message == null) {
                    break;
                }

                // 解析私密消息格式(示例:@targetUser message)
                if (message.startsWith("@")) {
                    String[] parts = message.split(" ", 2);
                    if (parts.length == 2) {
                        ChatServer.sendPrivateMessage(parts[1], parts[0].substring(1), this);
                        continue;
                    }
                }

                // 廣播消息給所有客戶端
                ChatServer.broadcast(username + ": " + message, this);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 異常之后移除處理器
            handlers.remove(this);
            try {
                clientSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public void sendMessage(String message) {
        writer.println(message);
    }
}

服務(wù)端的端口監(jiān)聽

1.監(jiān)聽客戶端連接端口8080

2.將客戶端信息存入內(nèi)存緩存處理

3.提供群聊廣播消息、私密消息功能

package org.sqs.socketchat.server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashSet;
import java.util.Set;

/**
 * 通信服務(wù)端
 */
public class ChatServer {
    //定義端口號(hào)
    private static final int PORT = 8080;
    //定義聊天處理器,將每個(gè)客戶端存入處理,用Set不會(huì)重復(fù)
    private static Set<ChatHandler> handlers = new HashSet<>();

    public static void main(String[] args) {
        //監(jiān)聽端口號(hào)
        try (ServerSocket serverSocket = new ServerSocket(PORT)) {
            System.out.println("聊天服務(wù)端正在此端口上運(yùn)行:" + PORT);

            //開始循環(huán)監(jiān)聽
            while (true) {
                //1.服務(wù)器調(diào)用 serverSocket.accept() 方法:該方法會(huì)一直阻塞,直到有客戶端請(qǐng)求連接到服務(wù)器。
                //2.客戶端發(fā)起連接請(qǐng)求: 當(dāng)有客戶端發(fā)起連接請(qǐng)求時(shí),serverSocket.accept() 會(huì)返回一個(gè)新的 Socket 對(duì)象,該對(duì)象代表與客戶端建立的連接。
                //3.創(chuàng)建新的 Socket 對(duì)象: 服務(wù)器通過 serverSocket.accept() 創(chuàng)建一個(gè)新的 Socket 對(duì)象,該對(duì)象包含了客戶端的信息,包括客戶端的地址和端口等。
                //4.處理客戶端連接: 服務(wù)器可以使用返回的 Socket 對(duì)象與客戶端進(jìn)行通信,發(fā)送和接收數(shù)據(jù)
                Socket clientSocket = serverSocket.accept();
                System.out.println("新的客戶端已連接 " + clientSocket);

                //將此socket客戶端連接存入Set當(dāng)中
                ChatHandler handler = new ChatHandler(clientSocket, handlers);
                handlers.add(handler);

                //創(chuàng)一個(gè)新線程來處理此客戶端的消息。建議:新線程可以用線程池來管理,固定1線程的線程池或者調(diào)整線程池策略
                Thread handlerThread = new Thread(handler);
                handlerThread.start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // Broadcast消息給所有客戶端。廣播
    public static void broadcast(String message, ChatHandler sender) {
        for (ChatHandler handler : handlers) {
            // 避免將消息發(fā)回給發(fā)送者
            if (handler != sender) {
                handler.sendMessage(message);
            }
        }
    }

    // 發(fā)送私密消息給指定客戶端
    public static void sendPrivateMessage(String message, String targetClient, ChatHandler sender) {
        for (ChatHandler handler : handlers) {
            // 找到目標(biāo)客戶端并發(fā)送私密消息
            if (handler.getUsername().equals(targetClient)) {
                handler.sendMessage(sender.getUsername() + " (私密): " + message);
                return;
            }
        }

        // 如果目標(biāo)客戶端不存在,通知發(fā)送者
        sender.sendMessage("用戶 '" + targetClient + "' 找不到.");
    }
}

以上就是所有的代碼咯,當(dāng)然還有標(biāo)題中提到的心跳以及超時(shí)的機(jī)制解決方案,以下代碼可供大家參考

心跳機(jī)制代碼

弄一個(gè)Timer定時(shí)器,定時(shí)的向服務(wù)端發(fā)送消息來保持socket連接的活躍性

    /**
     * 往上機(jī)系統(tǒng)發(fā)送指令,接收響應(yīng)
     *
     * @param message
     */
    public void sendMessage(String message) {
        try {
            log.info(message);
            if(null != out){
                out.println(message);
            }else{
                log.error("發(fā)送消息失敗!!! Socket out 為null,請(qǐng)檢查連接是否成功");
            }
            String response;
            if(null != in){
                response = in.readLine();
                log.info(response);
            }else{
                log.error("發(fā)送消息失敗!!! Socket in 為null,請(qǐng)檢查連接是否成功");
            }
        } catch (IOException e) {
                e.printStackTrace();
        } finally {
            try {
                closeConnection();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 定時(shí)心跳
     *
     * @param intervalSeconds
     */
    private void startHeartbeatTimer(int intervalSeconds) {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                sendMessage("客戶端:我的心跳信息,俺還活著哦!\t" + sdf.format(new Date()));
            }
        }, 0, intervalSeconds * 1000L);
    }

超時(shí)機(jī)制代碼

連接socket服務(wù)端時(shí),捕獲一個(gè)超時(shí)的異常就行

        try {
            socket = new Socket(serverHost, serverPort);
            //讀寫操作的超時(shí)時(shí)間
            socket.setSoTimeout(timeout);
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
        } catch (IOException e) {
            // 捕獲連接超時(shí)異常
            if (e instanceof ConnectException) {
                log.error("初始化連接失敗,請(qǐng)檢查server的活躍性!!!");
            } else {
                // 處理其他異常
                e.printStackTrace();
            }
        } finally {
            try {
                closeConnection();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

效果圖展示

?客戶端1效果圖:

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

?客戶端2效果圖:

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

客戶端3效果圖:

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

服務(wù)端效果圖:

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

?源碼+項(xiàng)目部署

數(shù)據(jù)庫還有源碼一起都打包再下邊的地址里了,下載開箱即用,跟springboot一樣,嘻嘻嘻!

嗯嗯嗯......終于到了激動(dòng)人心的時(shí)候了,我來幫你搞定一切各種面試,技術(shù)問題,畢業(yè)設(shè)計(jì),帝王般的服務(wù)你值得擁有,免費(fèi)的喲。

各類源碼掃描搜索公眾號(hào)《與胡廣一起探索比特星球》發(fā)送任何消息免費(fèi)獲取

各類源碼掃描搜索公眾號(hào)《與胡廣一起探索比特星球》發(fā)送任何消息免費(fèi)獲取

各類源碼掃描搜索公眾號(hào)《與胡廣一起探索比特星球》發(fā)送任何消息免費(fèi)獲取

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

最后附上

一寸光陰一寸金,寸金難買寸光陰。請(qǐng)珍惜現(xiàn)在美好的青春,咱們一起努力奮斗,創(chuàng)造美好未來

拜托拜托!??!拜托拜托!??!拜托拜托?。?!

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信

BIT PLANET?文章來源地址http://www.zghlxwxcb.cn/news/detail-826867.html

基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】,Java后端學(xué)習(xí),spring boot,java,后端,websocket,微信
BIT PLANET

到了這里,關(guān)于基于Springboot整合Socket仿微信實(shí)現(xiàn)群聊、私聊功能。實(shí)現(xiàn)客戶端client,服務(wù)端server心跳維護(hù)、超時(shí)機(jī)制【一文通】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot+websocket+webrtc 仿微信、仿QQ 音視頻通話聊天 飛魚chat IM即時(shí)通訊

    springboot+websocket+webrtc 仿微信、仿QQ 音視頻通話聊天 飛魚chat IM即時(shí)通訊

    仿微信、QQ音視頻聊天,文字表情、收發(fā)文件圖片等功能。本項(xiàng)目使用springboot+websocket+webrtc-bootstrap5+H5+JQuery3.3+mysql實(shí)現(xiàn),可自適應(yīng)PC端和移動(dòng)端 git地址在最后 pc端效果圖 WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的協(xié)議,這使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單

    2024年02月04日
    瀏覽(26)
  • SpringBoot入門篇3 - 整合junit、整合mybatis、基于SpringBoot實(shí)現(xiàn)ssm整合

    SpringBoot入門篇3 - 整合junit、整合mybatis、基于SpringBoot實(shí)現(xiàn)ssm整合

    目錄 Spring整合JUnit ?SpringBoot整合JUnit 測(cè)試類注解:@SpringBootTest 作用:設(shè)置JUnit加載的SpringBoot啟動(dòng)類 ①使用spring initializr初始化項(xiàng)目的時(shí)候,添加依賴。 ?②設(shè)置數(shù)據(jù)源application.yml 注意: SpringBoot版本低于2.4.3,Mysql驅(qū)動(dòng)版本大于8.0時(shí),需要在url連接串中配置時(shí)區(qū)。 ③定義數(shù)據(jù)

    2024年02月10日
    瀏覽(18)
  • 【Springboot】整合wxjava實(shí)現(xiàn) 微信小程序:授權(quán)登錄

    【Springboot】整合wxjava實(shí)現(xiàn) 微信小程序:授權(quán)登錄

    提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 WxJava - 微信開發(fā) Java SDK,支持微信支付、開放平臺(tái)、公眾號(hào)、企業(yè)號(hào)/企業(yè)微信、小程序等的后端開發(fā)。 官方的gitee倉庫地址 官方的github倉庫地址 官方的關(guān)于微信小程序的demo 導(dǎo)入wxjava的maven依賴 WxMaProperties 用于讀取yml配置

    2024年02月01日
    瀏覽(20)
  • springboot整合IJPay實(shí)現(xiàn)微信支付-V3---微信小程序

    springboot整合IJPay實(shí)現(xiàn)微信支付-V3---微信小程序

    微信支付適用于許多場(chǎng)合,如小程序、網(wǎng)頁支付、但微信支付相對(duì)于其他支付方式略顯麻煩,我們使用IJpay框架進(jìn)行整合 JPay 讓支付觸手可及, 封裝了微信支付、支付寶支付、銀聯(lián)支付常用的支付方式以及各種常用的接口。不依賴任何第三方 mvc 框架,僅僅作為工具使用簡(jiǎn)單

    2024年02月02日
    瀏覽(57)
  • 微信開發(fā)之一鍵創(chuàng)建微信群聊的技術(shù)實(shí)現(xiàn)

    微信開發(fā)之一鍵創(chuàng)建微信群聊的技術(shù)實(shí)現(xiàn)

    本接口為敏感接口,請(qǐng)查閱調(diào)用規(guī)范手冊(cè) 創(chuàng)建后,手機(jī)上不會(huì)顯示該群,往該群主動(dòng)發(fā)條消息手機(jī)即可顯示。 請(qǐng)求URL: http://域名地址/createChatroom 請(qǐng)求方式: POST 請(qǐng)求頭Headers: Content-Type:application/json Authorization:login接口返回 參數(shù): 參數(shù)名 必選 類型 說明 wId 是 String 登錄

    2024年02月11日
    瀏覽(21)
  • 【微信公眾號(hào)】12、SpringBoot整合WxJava實(shí)現(xiàn)用戶標(biāo)簽管理

    開發(fā)者可以使用用戶標(biāo)簽管理的相關(guān)接口,實(shí)現(xiàn)對(duì)公眾號(hào)的標(biāo)簽進(jìn)行創(chuàng)建、查詢、修改、刪除等操作,也可以對(duì)用戶進(jìn)行打標(biāo)簽、取消標(biāo)簽等操作 官方文檔:用戶標(biāo)簽管理 1、創(chuàng)建標(biāo)簽 注意 :一個(gè)公眾號(hào),最多可以創(chuàng)建100個(gè)標(biāo)簽

    2024年02月13日
    瀏覽(19)
  • 【微信公眾號(hào)】15、SpringBoot整合WxJava實(shí)現(xiàn)openApi管理

    1、清空api的調(diào)用quota 本接口用于清空公眾號(hào)/小程序/第三方平臺(tái)等接口的每日調(diào)用接口次數(shù) 注意事項(xiàng): 如果要清空公眾號(hào)的接口的quota,則需要用公眾號(hào)的access_token;如果要清空小程序的接口的quota,則需要用小程序的access_token;如果要清空第三方平臺(tái)的接口的quota,則需要

    2024年02月16日
    瀏覽(21)
  • 如何實(shí)現(xiàn)仿微信界面[我的+首頁聊天列表+長按菜單功能+添加菜單功能]

    如何實(shí)現(xiàn)仿微信界面[我的+首頁聊天列表+長按菜單功能+添加菜單功能]

    如何實(shí)現(xiàn)仿微信界面[我的+首頁聊天列表+長按菜單功能+添加菜單功能] 采用 uni-app 實(shí)現(xiàn),可以適用微信小程序、其他各種小程序以及 APP、Web等多個(gè)平臺(tái) 具體實(shí)現(xiàn)步驟如下: 下載開發(fā)者工具 HbuilderX 進(jìn)入 【 Dcloud 插件市場(chǎng) 】 搜索 【仿微信界面[我的+首頁聊天列表+長按菜單功

    2024年04月08日
    瀏覽(23)
  • springboot整合微信(公眾號(hào))實(shí)現(xiàn)掃碼登錄(兩種方式,兩種實(shí)現(xiàn))

    springboot整合微信(公眾號(hào))實(shí)現(xiàn)掃碼登錄(兩種方式,兩種實(shí)現(xiàn))

    首先說一下這個(gè)微信掃碼登錄它的方式有兩種,一種是基于網(wǎng)頁的redirect實(shí)現(xiàn),一種是基于公眾號(hào)推送消息實(shí)現(xiàn), 二者實(shí)現(xiàn)的效果是不一樣的 貼一個(gè)官方文檔 需要有自己的域名 (這里你可以使用內(nèi)網(wǎng)穿透,會(huì)生成一個(gè)自己的域名,網(wǎng)上一大堆,自己奧利給吧) 需要申請(qǐng)微信認(rèn)

    2024年01月18日
    瀏覽(42)
  • 微信開發(fā)之一鍵修改群聊備注的技術(shù)實(shí)現(xiàn)

    微信開發(fā)之一鍵修改群聊備注的技術(shù)實(shí)現(xiàn)

    修改群名備注后,如看到群備注未更改,是手機(jī)緩存問題,可以連續(xù)點(diǎn)擊進(jìn)入其他群,在點(diǎn)擊進(jìn)入修改的群,再返回即可看到修改后的群備注名,群名稱的備注僅自己可見 請(qǐng)求URL: http://域名地址/modifyGroupRemark 請(qǐng)求方式: POST 請(qǐng)求頭Headers: Content-Type:application/json Authorizat

    2024年02月10日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包