3

我正在尝试创建一个基于的服务器,但是每当我使用 dojo 由客户端连接到它时,它都会向我显示此错误:

    debug - destroying non-socket.io upgrade

这是我的服务器代码

var express = require("express");
var io = require("socket.io");
server= express.createServer();
var server_socket = io.listen(server);

server_socket.sockets.on("connection",function(socket)
{
    console.log("connection established");
    socket.emit("message", message);
});

server.listen(8080);

这是我的客户代码

require(["dojox/socket"], function (socket)
{
    var args, ws = typeof WebSocket != "undefined";
    var _socket = dojox.socket(args = {
        url: ws ? "ws://localhost:8080/" : "http://localhost:8080",
        headers:{
        "Content-Type":"application/x-www-urlencoded"
         },
        transport: function(args, message){
          args.content = message; // use URL-encoding to send the message
                                  // instead of a raw body
          dojo.xhrPost(args);
         }
    }); 
    websocket = dojox.socket.Reconnect(_socket);
    websocket.on("message",function(data)
    {
       console.log(data);
    });
});

请帮我。

4

2 回答 2

8

在 socketio 服务器配置上将“destroy upgrade”设置为 false 将解决此问题。

于 2013-04-12T12:44:08.597 回答
1

Socket.io 是 node.js 的服务器和客户端库。我猜 Dojo 的 websocket 客户端与 socket.io 服务器不直接兼容。我建议只使用socket.io 客户端进行连接,否则您可能不得不修改 Dojo 的 websocket 库,这可能会很困难。

于 2012-04-09T19:06:18.753 回答