微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-Phonegap是否在3.5.0-0.20.10版本中集成了socket.io?

由于我已经将PhoneGap更新到版本3.5.0-0.20.10,所以我的项目遇到了问题.

当我运行PhoneGap服务时,我会在cli中看到;

[phonegap] 200 /socket.io/?EIO=2&transport=polling&t=.......

但是我不使用socket.io.使用Chrome开发人员工具,我在项目中看到一个带有socket.io.js的socket.io文件夹.因此,我认为PhoneGap会自行导入.

我的RequireJS现在有一个问题:

Uncaught ReferenceError: io is not defined

我试图删除RequireJS,然后它可以工作,但我需要RequireJS.所有版本均可在旧版本3.5.0-0.20.5上完美运行

解决方法:

找到了答案…修改phonegap的node-modules目录(通常为/usr/local/lib / node_modules / phonegap / node_modules / connect-phonegap / res / middleware)下的consoler.js,以通过AMD而不是直接加载socket.io:

<!-- <script src="/socket.io/socket.io.js"></script> -->
<script>
(function(window) {
    require(['/socket.io/socket.io.js'],function(io){
        var socket = io('http://' + document.location.host);
        var prevIoUsConsole = window.console || {};
        window.console = {
            log:function(msg){
                prevIoUsConsole.log && prevIoUsConsole.log(msg);
                socket.emit('console','log', msg);
            },
            warn:function(msg){
                prevIoUsConsole.warn && prevIoUsConsole.warn(msg);
                socket.emit('console','warn', msg);
                },
            error:function(msg){
                prevIoUsConsole.error && prevIoUsConsole.error(msg);
                socket.emit('console','error', msg);
            }
        }
    });
})(window);
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐