javascript - socket.io - 引用错误 : io is not defined

标签 javascript android ios socket.io referenceerror

我正在为 Android 2.3.5(也将与 iOS 兼容)编写一个应用程序。我希望将数据从应用程序的 HTML/Javascript 传输到服务器上的 Python 程序(它使用 Twisted 引擎来检索数据)。

我尝试了很多方法,查看了各种论坛、答案、教程和网页(其中大部分都在这里),但找不到答案。这是我在 index.html 文件中的相关 Javascript:

<script src="socket-lib/socket.io.js"></script>
<script type="text/javascript" charset="utf-8">
function sendData() {
    try {
        var socket = io.connect('http://mywebsite.com:12345');
        socket.on('connect', function(data) {
            socket.send('Hello.');
            socket.on('message', function (msg) {
                socket.send('This is where I send data?');
            });
        });
    }
    catch(err) {
        alert('ERROR: socket.io encountered a problem:\n\n' + err);
    }
} // end of sendData

如果你不知道,我仍然很困惑这是如何工作的;我什至无法测试任何东西。不断出现的错误是ReferenceError: io is not defined .有些网站使用了类似 var io = require('socket.io'); .但随后会导致相同的错误:ReferenceError: require is not defined .

我将 socket-lib 文件夹放在 assets/www 中,任何其他 Javascript 源都应该放在其中。这也是 index.html 文件所在的位置。许多网站使用<script src="/socket.io/socket.io.js"></script> ,但这对我来说毫无意义。许多网站也暗示使用 node.js,但我从未在任何地方看到它。

我怎样才能做到这一点?

回复修改:

我在 Chrome 中尝试过,它给了我一个 Uncaught ReferenceError: require is not defined对于 socket.io.js 文件。所以我决定在 require.js 之前获取它。然后它给出错误 Uncaught Error: Module name "socket.io-client" has not been loaded yet for context .由于我没有使用它,所以我不在乎。但是,当我尝试连接时,它给出了相同的 io is not defined错误。当我将其定义为 var io = require('socket.io') ,错误为 Error: Module name "socket.io" has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded .我查看了网站,它对我没有任何帮助。当我尝试将“require”作为函数参数时,出现另一个错误:TypeError: undefined is not a function .

最佳答案

对于那些因 socket.io 文档严重缺乏而感到非常困惑的人,我找到了答案。

您无法获取 /socket-lib/socket.io.js

您必须来源 http://yourwebsite.com:12345/socket.io/socket.io.js

服务器会自动为您完成其余的工作。

关于javascript - socket.io - 引用错误 : io is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995406/

相关文章:

javascript - 无法点击下拉子菜单链接

javascript - 尝试掌握 JavaScript 动画的窍门

android - 项目刷新失败错误 :exception during working with external system: - Android Studio 2. 1 预览

ios - 如何使用 Swift 检测我的代码是否在 WatchKit 或 iOS 上运行?

ios - 键值 : on packed struct?

javascript - 布局和 View 管理

javascript - 无需修改 JavaScript 即可打印

android - 如何用相机连续拍摄两张照片?

Android:如何从视频 (Uri) 获取缩略图

ios - NSFetchedResultsController 与 Swift 中的自定义 Cell