我正在尝试创建基于socket.io的服务器,但每当我使用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);
});
});
请帮帮我。
答案 0 :(得分:8)
设置"销毁升级"在socketio服务器配置上为false将解决此问题。
答案 1 :(得分:1)
Socket.io既是node.js的服务器端和客户端端库。我猜Dojo的websocket客户端与socket.io服务器不直接兼容。我建议只使用socket.io client进行连接,否则你可能需要修改Dojo的websocket库,这可能很难。