2012-04-06 62 views
3

我试图做一个基于服务器,但每当我通过客户端连接使用道场它,它表明我这个错误:避免“毁non-socket.io升级”错误

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); 
    }); 
}); 

请帮助我。

回答

1

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

8

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

+2

当我将'destroy upgrade'设置为false时,它确实删除了这条消息,但我似乎仍然无法连接到我的服务器。我甚至使用WebSockets回显页面来测试,可能在这里做错了。 – icedwater 2014-01-24 02:09:56