我正在为 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
.