如何在连接到WebSocket时添加标头?

3
我们使用Spring WebSocket设置了WebSocket主题,然后客户端使用Stomp.js进行订阅。如果直接连接到WebSocket服务,则工作正常;但是现在我们在WebSocket服务前面设置了Kong作为API网关,连接时需要设置头文件"Host: websocket.com"。但是Stomp.js无法正常工作。
var url='http://xx.xx.xx.xx:8000/websocket/tracker';
var socket = new SockJS(url);
stompClient = Stomp.over(socket);
var thisheaders={
        Host:'websocket.com'
};
stompClient.connect(thisheaders, function (frame) {
    setConnected(true);
    console.log('Connected: ' + frame);
    stompClient.subscribe('/topic/greetings', function (greeting) {
        showGreeting(JSON.parse(greeting.body).content);
    });
});

有人知道如何添加头信息吗?或者说Stomp.js不支持添加头信息吗?

1个回答

1
@pankaj malik.. 试试这个。
var url='http://xx.xx.xx.xx:8000/websocket/tracker';
    var socket = new SockJS(url);
    stompClient = Stomp.over(socket);
    var thisheaders={
                    login: 'user',
                    passcode: 'AuWcecmbtSz2',
                    AuthToken: getItem('Authentication')//get your authentication token here
                };
    stompClient.connect(thisheaders, function (frame) {
        setConnected(true);
        console.log('Connected: ' + frame);
        stompClient.subscribe('/topic/greetings', function (greeting) {
            showGreeting(JSON.parse(greeting.body).content);
        });
    });

这段代码在Kong上无法正常工作,但是通过以下方式已经解决了问题: var url='http://xx.xx.xx.xx:8000/websocket/tracker?apikey=r783ruhrrhuvrhvrbhjfet3r3r'; 无论如何还是感谢您。 - pankaj malik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接