我正在为 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
。我看了网站,它根本没有帮助我。当我试图把“规定”作为函数的参数,出现另一个错误:TypeError: undefined is not a function
。