• 大小: 6.82MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-01
  • 语言: 其他
  • 标签: websocket  广播  

资源简介

基于spring websocket实现广播及点对点推送功能Demo。 开发环境:IntelliJ IDEA 2016.3.4 运行环境:jre1.8.0_131 服务器:Tomcat 8.5 测试步骤: 1.配置好环境,主要是maven和tomcat; 2.编译并运行,使用不同的浏览器分别进行连接; 3.将不同浏览器“控制台”或者“console”监听的/user/**/message中**作为ID填入输入框; 4.点击“Send”,发现只有ID匹配的浏览器才会接收到消息,到此点对点测试完成; 5.在任意浏览器中打开新的浏览页,访问localhost:8080/send,在所有连接的客户端均受到消息,到此广播测试完成。

资源截图

代码片段和文件信息

package com.controller;

import com.model.Greeting;
import com.model.HelloMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.SendTo;
import org.springframework.messaging.simp.SimpMessageSendingOperations;
import org.springframework.messaging.simp.annotation.SendToUser;
import org.springframework.messaging.simp.annotation.SubscribeMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * Created by haoyuyang on 2016/11/25.
 */
@RestController
public class GreetingController {

    @Autowired
    private SimpMessageSendingOperations simpMessageSendingOperations;

    /**
     * 表示服务端可以接收客户端通过主题“/app/hello”发送过来的消息,客户端需要在主题“/topic/hello“上监听并接收服务端发回的消息
     */
    @MessageMapping(“/hello“) //“/hello“为WebSocketConfig类中registerStompEndpoints()方法配置的
    @SendTo(“/topic/greetings“)
    public Greeting greeting(HelloMessage message) {
        System.out.println(“connected successfully....“);
        String name = message.getName();
        simpMessageSendingOperations.convertAndSendToUser(name“/message“new Greeting(“P2P: “+name));
        return new Greeting(“Hello“+name);
    }

    @SubscribeMapping(“/macro“)
    @SendTo(“/topic/greetings“)
    public Greeting hand(){
        System.out.println(“connected successfully....“);
        simpMessageSendingOperations.convertAndSend(“/topic/greetings“new Greeting(“macro“));
        return new Greeting(“I macro“);
    }

    /**
     * 这里用的是@SendToUser,这就是发送给单一客户端的标志。本例中,
     * 客户端接收一对一消息的主题应该是“/user/” + 用户Id + “/message” 这里的用户id可以是一个普通的字符串,只要每个用户端都使用自己的id并且服务端知道每个用户的id就行。
     * @return
     */
    @MessageMapping(“/message“)
    @SendToUser(“/message“)
    public Greeting handleSubscribe() {
        System.out.println(“this is the @SubscribeMapping(‘/marco‘)“);
        return new Greeting(“I am a msg from SubscribeMapping(‘/macro‘).“);
    }

    @RequestMapping(value = “/getId“method = RequestMethod.POST)
    public Mapject> getId() {
        Mapject> map = new HashMapject>();
        map.put(“id“String.valueOf(new Random().nextInt(100)));
        return map;
    }

    /**
     * 测试对指定用户发送消息方法
     * @return
     */
    @RequestMapping(value = “/send“ method = RequestMethod.GET)
    public Greeting send() {
        simpMessageSendingOperations.convertAndSend(“/topic/feed“ new Greeting(“feed“));
        simpMessageSendingOperations.convertAndSend(“/topic/greetings“ new Greeting(“greetings“));
        return new Greeting(“TTTTTTTT“);
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-07-17 09:22  HelloWeb\
     目录           0  2017-07-14 11:32  HelloWeb\.idea\
     目录           0  2017-07-13 16:37  HelloWeb\.idea\artifacts\
     文件        2370  2017-07-13 16:37  HelloWeb\.idea\artifacts\HelloWeb_war_exploded.xml
     文件         628  2017-07-12 15:00  HelloWeb\.idea\compiler.xml
     目录           0  2017-07-12 15:01  HelloWeb\.idea\libraries\
     文件         538  2017-07-12 15:00  HelloWeb\.idea\libraries\Maven__aopalliance_aopalliance_1_0.xml
     文件         668  2017-07-12 15:00  HelloWeb\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_annotations_2_5_0.xml
     文件         619  2017-07-12 15:00  HelloWeb\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_core_2_5_3.xml
     文件         647  2017-07-12 15:00  HelloWeb\.idea\libraries\Maven__com_fasterxml_jackson_core_jackson_databind_2_5_3.xml
     文件         582  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__commons_logging_commons_logging_1_2.xml
     文件         602  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__javax_servlet_javax_servlet_api_3_1_0.xml
     文件         633  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_aop_4_2_8_RELEASE.xml
     文件         647  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_beans_4_2_8_RELEASE.xml
     文件         661  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_context_4_2_8_RELEASE.xml
     文件         717  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_context_support_4_2_8_RELEASE.xml
     文件         640  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_core_4_2_8_RELEASE.xml
     文件         682  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_expression_4_2_8_RELEASE.xml
     文件         675  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_messaging_4_2_8_RELEASE.xml
     文件         633  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_web_4_2_8_RELEASE.xml
     文件         654  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_webmvc_4_2_8_RELEASE.xml
     文件         675  2017-07-12 15:01  HelloWeb\.idea\libraries\Maven__org_springframework_spring_websocket_4_2_8_RELEASE.xml
     文件         454  2017-07-12 14:20  HelloWeb\.idea\misc.xml
     文件         256  2017-07-12 14:17  HelloWeb\.idea\modules.xml
     文件       67704  2017-07-14 11:32  HelloWeb\.idea\workspace.xml
     文件        3180  2017-07-13 16:54  HelloWeb\HelloWeb.iml
     文件         443  2017-07-17 09:31  HelloWeb\README.txt
     目录           0  2017-07-12 15:01  HelloWeb\out\
     目录           0  2017-07-12 15:01  HelloWeb\out\artifacts\
     目录           0  2017-07-14 09:38  HelloWeb\out\artifacts\HelloWeb_war_exploded\
     目录           0  2017-07-12 15:01  HelloWeb\out\artifacts\HelloWeb_war_exploded\meta-INF\
............此处省略82个文件信息

评论

共有 条评论