博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 开发指南第八节 WebSocket 的使用
阅读量:6816 次
发布时间:2019-06-26

本文共 4495 字,大约阅读时间需要 14 分钟。

hot3.png

首先pom.xml文件

4.0.0
com.avicsafety
im
0.0.1-SNAPSHOT
jar
service-im
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-websocket
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-security
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false

 

2. WebSocketConfig 设置了Socket 配置

@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {	 @Override	    public void registerStompEndpoints(StompEndpointRegistry registry) {	        registry.addEndpoint("/endpointWisely").withSockJS();	        registry.addEndpoint("/endpointChat").withSockJS();	    }	    @Override	    public void configureMessageBroker(MessageBrokerRegistry registry) {	        registry.enableSimpleBroker("/queue","/topic"); 	    }}

 

3.  配置了Security 和 3个账号

@Configuration@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter{    @Override    protected void configure(HttpSecurity http) throws Exception {        http                .authorizeRequests()                .antMatchers("/","/login").permitAll()                .anyRequest().authenticated()                .and()                .formLogin()                .loginPage("/login")                .defaultSuccessUrl("/chat")                 .permitAll()                .and()                .logout()                .permitAll();    }    @Override    protected void configure(AuthenticationManagerBuilder auth) throws Exception {            auth                .inMemoryAuthentication()                .withUser("liudehua").password("zzz123").roles("USER")                .and()                .withUser("zhangmanyu").password("zzz123").roles("USER")                .and()                .withUser("guofucheng").password("zzz123").roles("USER");    }    @Override    public void configure(WebSecurity web) throws Exception {        web.ignoring().antMatchers("/resources/static/**");    }    }

 

4. 服务器接受到消息 并发给指定的人

@Controller@SpringBootApplicationpublic class WebSocketApplication {	@RequestMapping("/login")	public void login(){}		@RequestMapping("/chat")	public void chat(){}		@Autowired	private SimpMessagingTemplate messagingTemplate;    @MessageMapping("/chat")    public void handleChat(Principal principal, String username, String message) {           messagingTemplate.convertAndSendToUser(username,"/queue/notifications", principal.getName() + "-say:" + message);    }		public static void main(String[] args) {		SpringApplication.run(WebSocketApplication.class, args);	}}

 

转载于:https://my.oschina.net/u/659068/blog/1559401

你可能感兴趣的文章
java求素数和求一个数的一个正整数的质因数
查看>>
centos6.6 部署 cacti 并采集交换机流量
查看>>
web 开发之js---巧用iframe实现jsp无刷新上传文件
查看>>
WMS相关中英文术语
查看>>
实时监测网络流量
查看>>
块IO与流IO简介
查看>>
best introduction to camera calibration
查看>>
struts2单文件上传案例演示(二)
查看>>
OC-核心语法(3)(分类、SEL、类本质)
查看>>
web2py官方文档翻译00
查看>>
python深坑集锦 -- super
查看>>
my29_PXC集群状态查看
查看>>
LRUCache
查看>>
vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解
查看>>
无刷新分页
查看>>
媒体查询-全面学习
查看>>
jquery判断滚动条是否到达顶部或者底部
查看>>
[模板] 动态树/LCT
查看>>
requirejs+anjularjs+express框架
查看>>
继续画图形
查看>>