我正在尝试开发一个web应用程序。我已经有了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工作正常。
使用AMD加载程序加载socket.io,而不是自己注入脚本,因为它是AMD模块。
require([ 'socket.io/socket.io' ], …);
更好-你不需要socket.io.js-你只需要dojo
"dojox/socket"
https://www.sitepen.com/blog/2012/11/05/dojo-websocket-with-amd/