stomp nodejs在连接时不发送标头
Posted
技术标签:
【中文标题】stomp nodejs在连接时不发送标头【英文标题】:stomp nodejs not sending header on connect 【发布时间】:2015-03-06 14:37:08 【问题描述】:我有一个超级简单的 nodejs 应用程序,它使用 stomp 连接到使用 websockets 的服务器。
问题是应用程序没有发送我告诉它发送的标头。关于如何发送标头的文档和示例再清楚不过了,所以我不知道为什么我没有在wireshark 中看到我的。
var Stomp = require('stompjs');
var client = Stomp.overWS('ws://localhost:8080/web/wsendpoint');
var headers =
login: 'mylogin',
passcode: 'mypasscode',
// additional header
'Auth-Token': 'token'
;
client.connect(headers, connectCallback);
var connectCallback = function(frame)
alert('connected');
;
这可以正常连接,但标题似乎被忽略了。 有人知道这是为什么吗?
【问题讨论】:
【参考方案1】:好消息是,您确实将标头发送到服务器。坏消息是,使用 DOC-proper 的代码如下:
client.connect(headers, connectCallback, errorCallback);
我收到了:
11 Mar 11:34:07 - server is connected to 127.0.0.1:8080
11 Mar 11:34:07 -
command: 'CONNECT',
header:
login: '[object Object]',
passcode: 'undefined',
'accept-version': '1.1,1.0',
'heart-beat': '10000,10000' ,
body: ''
清楚地表明,stompjs 正在登录字段中发送headers
对象。无论如何,通过您的代码,我可以看到一个正确的框架:
command: 'CONNECT',
header:
login: 'mylogin',
passcode: 'mypasscode',
'accept-version': '1.1,1.0',
'heart-beat': '10000,10000' ,
body: ''
所以可能 - 我猜 - 有一个好的代码,你在你的 wireshark 中看到错误的(部分)包。一些线索可能在here。
我用于测试的是here。
【讨论】:
好吧,我已经在捕获的数据包中搜索了标头,但没有运气。搜索 url 是成功的,但是搜索“login”、“passcode”或“Auth-Token”没有结果。 尝试在包内容中搜索CONNECT
,因为这是客户端发送到服务器进行协商的命令。之后的标题是几行,仍然在包内容中,并且因为您似乎连接正确,所以这个包是肯定发送的,您必须能够找到它。以上是关于stomp nodejs在连接时不发送标头的主要内容,如果未能解决你的问题,请参考以下文章