java服务器开发教程 再谈websocket论架构设计(7)

电脑杂谈  发布时间:2018-02-21 00:52:48  来源:网络整理

相对较为简单,创建2个客户,4个普通用户。

当认证管理器认证后,会将认证后的合法认证安全对象user(即 认证后的token)放入STOMP的header中.

此例中,认证管理认证之后,认证的token为org.springframework.security.authentication.UsernamePasswordAuthenticationToken,

此token认证后,将放入websocket的header中。(即 后边会谈到的安全对象 java.security.Principal)

通讯层设计 – websocket配置

@Order(Ordered.HIGHEST_PRECEDENCE + 99)
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/portfolio").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.setApplicationDestinationPrefixes("/app");
        config.enableSimpleBroker("/topic", "/queue");

    }
}

此配置中,有几点需进行讲解:

其中端点”portfolio”,用于socktJs进行websocket连接时使用,只用于建立连接。

“/topic”, “/queue”,则为STOMP的语义约束,topic语义为1-n(广播机制),queue语义为1-1(单点机制)

“app”,此为应用级别的映射终点前缀,这样说有些晦涩,一会看一下示例将会清晰很多。

通讯层设计 – 创建连接

用于连接spring websocket的端点为portfolio,它可用于连接,看一下具体实现:

<script src="http://cdn.bootcss.com/sockjs-client/1.1.1/sockjs.min.js"></script>
<script src="http://cdn.bootcss.com/stomp.js/2.3.3/stomp.js"></script>
<script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>

var socket = new SockJS("/portfolio");
stompClient = Stomp.over(socket);

stompClient.connect({}, function(frame) {
   showGreeting("登录用户: " + frame.headers["user-name"]);
});


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-86444-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...