资源简介
基于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.xm
文件 628 2017-07-12 15:00 HelloWeb\.idea\compiler.xm
目录 0 2017-07-12 15:01 HelloWeb\.idea\libraries\
文件 538 2017-07-12 15:00 HelloWeb\.idea\libraries\Maven__aopalliance_aopalliance_1_0.xm
文件 668 2017-07-12 15:00 HelloWeb\.idea\libraries\Maven__com_fasterxm
文件 619 2017-07-12 15:00 HelloWeb\.idea\libraries\Maven__com_fasterxm
文件 647 2017-07-12 15:00 HelloWeb\.idea\libraries\Maven__com_fasterxm
文件 582 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__commons_logging_commons_logging_1_2.xm
文件 602 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__javax_servlet_javax_servlet_api_3_1_0.xm
文件 633 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 647 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 661 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 717 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 640 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 682 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 675 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 633 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 654 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 675 2017-07-12 15:01 HelloWeb\.idea\libraries\Maven__org_springfr
文件 454 2017-07-12 14:20 HelloWeb\.idea\misc.xm
文件 256 2017-07-12 14:17 HelloWeb\.idea\modules.xm
文件 67704 2017-07-14 11:32 HelloWeb\.idea\workspace.xm
文件 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\me
............此处省略82个文件信息
相关资源
- tomcat实现websocket聊天室
- 叫号语音平台源码
- springboot+websocket实现聊天室
- 用okhttp实现webSocket长连接
- node.js+socket.io+websocket使用demo
- 中国广播数据系统(RDS)技术规范
- websocket 1V1聊天室
- 简单的在线聊天室实现群聊和单聊,
- e语言-58自动回复招聘方源码 websocke
- libwebsockets-master
- Springboot多连接池+websocket
- SuperWebSocket使用
- libwebsockets-master.rar
- AlarmManagerDemo(含 广播 service activit
- websocket实现单聊和群聊
- websocket服务端与客户端通信
- WEB在线聊天系统源码
- websocket向指定用户发信息
- Spring Boot整合websocket实现群聊,点对点
- Broadcast广播实现强制下线功能
- 基于vs2010做的tcp通信调试工具源码
- 小型车站引导广播中综合系统一
- 小型车站引导广播综合系统(二)
- 小型车站引导广播综合系统(三).
- 小型车站引导广播综合系统四.
- Web网盘,WebSocket通讯
- .net websocket简单
- 基于Service的音乐播放器Demo
- websocket简单实现
- 时方学校广播定时系统学校广播必备
评论
共有 条评论