0

我正在尝试开发一个网络应用程序。我已经有工作代码,其中 socket.io 用于在服务器端和客户端之间进行通信。

现在,我想使用 Dojo 编写界面,但是两者不能很好地配合使用这是我所拥有的:

<script src="dojo/dojo.js" data-dojo-config="async:true, parseOnLoad:true"></script>    
<script src="/socket.io/socket.io.js"></script>

<script>
require(["dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/TabContainer",
    "dijit/layout/ContentPane"]);
</script>

我得到的错误:

Error {src: "dojoLoader", info: Object}
get stack: function () { [native code] }
info: Object
message: "multipleDefine"
set stack: function () { [native code] }
src: "dojoLoader"
__proto__: d
 dojo.js:1849

如果我注释掉这一行:<script src="/socket.io/socket.io.js"></script> Dojo 工作正常。

4

2 回答 2

3

使用 AMD 加载程序加载 socket.io,而不是自己注入脚本,因为它是一个 AMD 模块。

require([ 'socket.io/socket.io' ], …);
于 2013-05-15T20:43:39.520 回答
0

更好 - 你不需要 socket.io.js - 你只需要 dojo

"dojox/socket"

https://www.sitepen.com/blog/2012/11/05/dojo-websocket-with-amd/

于 2014-02-14T23:14:07.227 回答