主题 : 关于jeecms9.3版本,整合websocket的问题。
级别: 举人
UID: 128059
积分:101 加为好友
威望: 6 精华: 0
主题:9 回复:52
注册时间:2019-02-05
在线时长:0
1#   发表于:2019-03-01 16:12:55  IP:117.29.*.*

1. 配置文件:
    <!-- 配置好处理器 -->
<bean id="websocketHandler" class="com.jeecms.cms.TestWebSocketHandler"/>
<!-- 配置拦截器 -->
    <websocket:handlers>
        <websocket:mapping path="/testWebSocket.jspx" handler="websocketHandler"/><!-- 连接的URL -->
        <websocket:handshake-interceptors>
            <bean class="com.jeecms.cms.TestHandshakeInterceptor"/>
        </websocket:handshake-interceptors>
    </websocket:handlers>
    
    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
2. 拦截器
public class TestHandshakeInterceptor extends HttpSessionHandshakeInterceptor {
    @Override
    public boolean beforeHandshake(ServerHttpRequest request,
                                   ServerHttpResponse response, WebSocketHandler wsHandler,
                                   Map<String, Object> attributes) throws Exception {
    
     System.out.println("beforeHandshake");
        return super.beforeHandshake(request, response, wsHandler, attributes);
    }

    @Override
    public void afterHandshake(ServerHttpRequest request,
                               ServerHttpResponse response, WebSocketHandler wsHandler,
                               Exception ex) {
        System.out.println("After Handshake");
        super.afterHandshake(request, response, wsHandler, ex);
    }
}

3. 配置
@Configuration
@EnableWebSocket
@EnableWebMvc
public class TestWebSocketConfig implements WebSocketConfigurer {

    public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) {
         webSocketHandlerRegistry.addHandler(myHandler(),"/testWebSocket.jspx").addInterceptors(new TestHandshakeInterceptor());
         webSocketHandlerRegistry.addHandler(myHandler(),"/sockjs/testWebSocket/info").addInterceptors(new TestHandshakeInterceptor()).withSockJS();
    }
    @Bean
    public WebSocketHandler myHandler(){
        return new TestWebSocketHandler();
    }


}
4. Handler
public class TestWebSocketHandler extends TextWebSocketHandler {

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
     System.out.println("成功链接 websocket......");
        super.afterConnectionEstablished(session);
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) {
     System.out.println("afterConnectionClosed");
    }
 //这里是处理前端发送的消息以及返回给前端的数据
 //可以从session里面获取attributes,
    @Override
    protected void handleTextMessage(WebSocketSession session,
                                     TextMessage message) throws Exception {
        super.handleTextMessage(session, message);
        System.out.println("handleTextMessage");
    
    }

5. 前端访问:
openWebSocket(){
      var ws = null;
    //判断当前浏览器是否支持WebSocket
    if ('WebSocket' in window) {
        ws = new WebSocket("ws://localhost:8080/jeecmsv9f/visualizationWebSocket.jspx?type=mall");
        console.log("WebSocket");
    } else {
        ws = new SockJS("ws://localhost:8080/jeecmsv9f/sockjs/visualizationWebSocket/info?type=mall");
         console.log("SockJS");
    }
    ws.onopen = function () {
        console.log("open");
    };
  //这个事件是接受后端传过来的数据
    ws.onmessage = function (event) {
        //根据业务逻辑解析数据
        console.log("onmessage");
    };
    ws.onclose = function (event) {
        console.log("onclose");

    };
},
遇到的问题:ws访问报错:403.
能进入到拦截器,后台打印:
beforeHandshake
After Handshake

能问一下,jeecms后台管理页面,要添加整合一个websocket的具体步骤吗?谢谢。
级别: 论坛管理员
UID: 122721
积分:57884 加为好友
威望: 2 精华: 1
主题:5 回复:50085
注册时间:2018-05-07
在线时长:0
2#   发表于:2019-03-01 16:15:12  IP:117.153.*.*
您好  您说的添加整合一个websocket的具体步骤是指什么?
每天告诉自己一次,“我真的很不错”。
级别: 举人
UID: 128059
积分:101 加为好友
威望: 6 精华: 0
主题:9 回复:52
注册时间:2019-02-05
在线时长:0
3#   发表于:2019-03-01 16:23:38  IP:117.29.*.*
你好,就是希望能把spring-websocket,添加到jeecms后端服务,后台页面能直接连接上。

现在是了一下,添加了spring-websocket,不过后台的页面在访问的时候,报错403。

级别: 举人
UID: 128059
积分:101 加为好友
威望: 6 精华: 0
主题:9 回复:52
注册时间:2019-02-05
在线时长:0
4#   发表于:2019-03-01 16:24:07  IP:117.29.*.*
现在不知道是哪里有错,想要学习,了解一下。
级别: 论坛管理员
UID: 122721
积分:57884 加为好友
威望: 2 精华: 1
主题:5 回复:50085
注册时间:2018-05-07
在线时长:0
5#   发表于:2019-03-01 16:29:57  IP:117.125.*.*
您好   我们系统目前还不支持使用spring-websocket技术   您如果有需要的话可以找我们的售前了解下定制开发服务
每天告诉自己一次,“我真的很不错”。
1 共1页