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 に答える