Javascript WebSocket在发送时关闭

Javascript WebSocket在发送时关闭,javascript,html,node.js,websocket,Javascript,Html,Node.js,Websocket,所以我看到了这篇很棒的博文。我决定试着用作者的名字自己设置它。它不起作用 进一步的调试表明websocket连接正常,但一旦调用“send”就会关闭。这是wireshark跟踪(请原谅奇怪的间距): 我在Chrome和Firefox 4.0测试版中都试过。他们都表现出相同的行为。如果我去看电影,效果很好 还有一件事。如果我在FF或Chrome中进入JS控制台并执行以下操作: ws = new WebSocket('ws://localhost:8000/test') ws.send("foo")

所以我看到了这篇很棒的博文。我决定试着用作者的名字自己设置它。它不起作用

进一步的调试表明websocket连接正常,但一旦调用“send”就会关闭。这是wireshark跟踪(请原谅奇怪的间距):

我在Chrome和Firefox 4.0测试版中都试过。他们都表现出相同的行为。如果我去看电影,效果很好

还有一件事。如果我在FF或Chrome中进入JS控制台并执行以下操作:

ws = new WebSocket('ws://localhost:8000/test')
ws.send("foo")
它会立即断开连接,不发送消息。服务器显示连接和握手,但从未收到消息


我在这里发现了一些类似的问题,但要么没有发布补丁就解决了,要么似乎不适用于这种情况。我可以从中发布代码,如果这会使它更容易。

主标题。尽管我相信自己安装了Node.js的最新版本,但我没有安装。我有几台机器上有Node.js我一定是迷路了。我有Node.jsv0.1.96。升级到v0.1.102后,一切正常


对不起,伙计们-D

对于从浏览器发出发送时发生的断开连接问题,您需要等待onopen事件触发后再发出发送:

var conn = new WebSocket('ws://localhost:8000/test');
conn.onopen = function (e) {
    conn.send('foo');
}
conn.onmessage = function (e) {
    console.log('got: ' + e.data);
}
CloseEvent有一个“code”属性,它将为您提供有关连接关闭原因的信息

“返回包含服务器发送的关闭代码的无符号短代码。以下值是允许的状态代码。”

支持多种代码值。以下是最突出的:

  • 1000:正常关闭
  • 1001:关闭,离开
  • 1002:关闭\u协议\u错误
  • 1003:不支持关闭
  • 1005:关闭\u否\u状态

更多信息。

在Android中,对我来说,问题在于如何处理数据。我能够通过以下操作精确定位

  • 检查NodeJs(服务器)中是否有错误-通过注释send项
    ws.send(JSON.stringify(无论什么))

  • 通过评论onMessage,检查Android(客户端)是否有问题<代码>Log.d(“TAG”,“onMessage:+text”)然后查看您如何处理数据并注释掉这些部分。在
    onClosed和onFailure上运行日志

  • 这至少可以帮助您找出问题所在,因为很难找到NodeJs Websocket帮助<代码>语言并不难-很难找到文档、支持和缺少社区。很难找到好的烹饪书、项目视频教程

    我以Json数组的形式获取数据,并试图以错误的方式填充recycler视图。这是我的问题

    您还应该在node.js文件中尝试以下代码以查看原因

    // Connection Closed
    ws.on('close', function close(code, reason) {
    console.log('ws is closed with code: ' + code + ' reason: ' + reason);
    });
    
    // On Error
    ws.on('error', function(e) {
        console.log("error occured" +e);
    });
    

    有关完整问题和解决方案,请参见此处:

    虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-非常感谢你的建议。下次我会考虑的!
    // Connection Closed
    ws.on('close', function close(code, reason) {
    console.log('ws is closed with code: ' + code + ' reason: ' + reason);
    });
    
    // On Error
    ws.on('error', function(e) {
        console.log("error occured" +e);
    });