package com.example.demo.websocket2;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpSession;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@Component
@ServerEndpoint(value = "/video",configurator = GetHttpSessionConfig.class)
public class WebSocketServer {
//存储客户端的连接对象,每个客户端连接都会产生一个连接对象
private static ConcurrentHashMap<String,WebSocketServer> map = new ConcurrentHashMap();
//每个连接都会有自己的会话
private Session session;
private String account;
@OnOpen
public void open(Session session,EndpointConfig config){
HttpSession httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
String account = String.valueOf(httpSession.getAttribute("account"));
map.put(account,this);
this.session = session;
this.account = account;
}
@OnClose
public void close(){
map.remove(account);
}
@OnError
public void error(Throwable error){
error.printStackTrace();
}
@OnMessage
public void getMessage(String message) throws IOException {
Set<Map.Entry<String, WebSocketServer>> entries = map.entrySet();
for (Map.Entry<String, WebSocketServer> entry : entries) {
if(!entry.getKey().equals(account)){//将消息转发到其他非自身客户端
entry.getValue().send(message);
}
}
}
public void send(String message) throws IOException {
if(session.isOpen()){
session.getBasicRemote().sendText(message);
}
}
public int getConnetNum(){
return map.size();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot+WebSocket+WebRTC实现视频通话 (111个子文件)
WebSocketServer.class 4KB
TestController.class 2KB
GetHttpSessionConfig.class 1KB
DemoApplication.class 733B
Config.class 701B
DemoApplicationTests.class 416B
mvnw.cmd 7KB
test1.css 4KB
test1.css 4KB
.gitignore 395B
main.html 7KB
main.html 7KB
test1.html 982B
test1.html 982B
demo.iml 9KB
test_1.iml 9KB
maven-wrapper.jar 59KB
WebSocketServer.java 2KB
TestController.java 944B
GetHttpSessionConfig.java 647B
Config.java 410B
DemoApplication.java 319B
DemoApplicationTests.java 139B
jquery.js 170KB
jquery.js 170KB
test1.js 600B
test1.js 600B
demo.kotlin_module 16B
HELP.md 851B
mvnw 10KB
.name 4B
maven-wrapper.properties 1019B
workspace.xml 7KB
pom.xml 2KB
compiler.xml 867B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_13_5.xml 748B
Maven__org_thymeleaf_extras_thymeleaf_extras_java8time_3_0_4_RELEASE.xml 737B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_7_10.xml 732B
Maven__org_springframework_boot_spring_boot_starter_thymeleaf_2_7_10.xml 725B
Maven__org_springframework_boot_spring_boot_starter_websocket_2_7_10.xml 725B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 712B
Maven__org_springframework_boot_spring_boot_starter_logging_2_7_10.xml 711B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_13_5.xml 707B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_7_10.xml 704B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_7_10.xml 697B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_13_5.xml 693B
Maven__org_springframework_boot_spring_boot_starter_test_2_7_10.xml 690B
Maven__org_springframework_boot_spring_boot_starter_json_2_7_10.xml 690B
Maven__org_springframework_boot_spring_boot_starter_web_2_7_10.xml 683B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_73.xml 672B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_13_5.xml 663B
Maven__org_springframework_boot_spring_boot_devtools_2_7_10.xml 662B
Maven__org_springframework_boot_spring_boot_starter_2_7_10.xml 655B
Maven__org_thymeleaf_thymeleaf_spring5_3_0_15_RELEASE.xml 653B
Maven__org_junit_platform_junit_platform_commons_1_8_2.xml 645B
Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 645B
Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 645B
Maven__com_fasterxml_jackson_core_jackson_databind_2_13_5.xml 642B
Maven__org_junit_platform_junit_platform_engine_1_8_2.xml 638B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_73.xml 637B
Maven__org_springframework_boot_spring_boot_test_2_7_10.xml 634B
Maven__org_junit_jupiter_junit_jupiter_params_5_8_2.xml 627B
Maven__org_junit_jupiter_junit_jupiter_engine_5_8_2.xml 627B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_73.xml 623B
Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml 623B
Maven__org_springframework_spring_expression_5_3_26.xml 621B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_17_2.xml 620B
Maven__com_fasterxml_jackson_core_jackson_core_2_13_5.xml 614B
Maven__org_springframework_spring_messaging_5_3_26.xml 614B
Maven__org_springframework_spring_websocket_5_3_26.xml 614B
Maven__org_mockito_mockito_junit_jupiter_4_5_1.xml 610B
Maven__org_junit_jupiter_junit_jupiter_api_5_8_2.xml 606B
Maven__org_attoparser_attoparser_2_0_5_RELEASE.xml 601B
Maven__org_springframework_spring_context_5_3_26.xml 600B
Maven__org_springframework_boot_spring_boot_2_7_10.xml 599B
Maven__org_thymeleaf_thymeleaf_3_0_15_RELEASE.xml 597B
Maven__net_bytebuddy_byte_buddy_agent_1_12_23.xml 597B
Maven__org_springframework_spring_webmvc_5_3_26.xml 593B
Maven__org_unbescape_unbescape_1_1_6_RELEASE.xml 590B
Maven__ch_qos_logback_logback_classic_1_2_11.xml 587B
Maven__org_springframework_spring_beans_5_3_26.xml 586B
Maven__org_apache_logging_log4j_log4j_api_2_17_2.xml 585B
Maven__org_apiguardian_apiguardian_api_1_1_2.xml 584B
Maven__org_springframework_spring_test_5_3_26.xml 579B
Maven__org_springframework_spring_core_5_3_26.xml 579B
Maven__org_junit_jupiter_junit_jupiter_5_8_2.xml 578B
Maven__org_springframework_spring_web_5_3_26.xml 572B
Maven__org_springframework_spring_jcl_5_3_26.xml 572B
Maven__org_springframework_spring_aop_5_3_26.xml 572B
Maven__net_minidev_accessors_smart_2_4_9.xml 568B
Maven__ch_qos_logback_logback_core_1_2_11.xml 566B
Maven__com_jayway_jsonpath_json_path_2_7_0.xml 558B
Maven__net_bytebuddy_byte_buddy_1_12_23.xml 555B
Maven__org_assertj_assertj_core_3_22_0.xml 554B
Maven__org_skyscreamer_jsonassert_1_5_1.xml 549B
Maven__org_xmlunit_xmlunit_core_2_9_1.xml 547B
Maven__org_mockito_mockito_core_4_5_1.xml 547B
Maven__org_slf4j_jul_to_slf4j_1_7_36.xml 546B
Maven__org_opentest4j_opentest4j_1_2_0.xml 545B
Maven__org_projectlombok_lombok_1_18_26.xml 543B
共 111 条
- 1
- 2
资源评论
- zzz_872023-09-05下来参考一下
- sylines2023-08-19一个骗子 #毫无价值 #上传者态度恶劣
坚持不懈的大白
- 粉丝: 5715
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功