android - NodeJS + SocketIO 推送到移动应用

标签 android ios node.js websocket socket.io

我在 SocketIO 的网站上看到可以在移动设备上使用 SocketIO。我试图在其网站上找到有关如何执行此操作的文档,但找不到任何文档。

有没有人知道如何使用 SocketIO 向移动设备发送消息?我的猜测是它必须存在于 WebView 或可以运行 javascript 的东西中?

编辑 如果我不打算使用 Sencha 或 PhoneGap 怎么办?我想去土生土长 objective-C/Java。这可能吗?

添加到所选答案 我找到了一个 java socket.io 客户端 https://github.com/benkay/java-socket.io.client

最佳答案

Socket.io 利用网络套接字协议(protocol)(客户端通过 HTTP 向服务器发送升级请求)提供全双工通信 channel 。正如您提到的,移动空间中的许多 Web 浏览器都支持它。

要实现这一点,一个用例是,例如,您要开发一个基于 phonegap 的应用程序,它基本上是 HTML、CSS 和 JS。因此,要拥有专用的全双工通信 channel ,您可以使用 socket.io .

当您编写 Node JS 服务器时:引用 Socket.io Website

var io = require('socket.io').listen(80); // beauty is web socket still runs in 80/443(WSS) and leverages TCP's capabilities.

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

但在您的移动开发端,您必须在 HTML 中包含 JS,以利用网络套接字的功能。

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

socket.io 网站上提供了可下载的客户端 JS。

希望这对您有所帮助。

关于android - NodeJS + SocketIO 推送到移动应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083093/

相关文章:

javascript - AngularJS $http.delete 和 $window.location.reload()

android - 使用 Android 作为触摸屏 HMI

ios - 我的 NotificationServiceExtension Info.plist 文件中的 Flutter/iOS : How can I use pubspec. yaml 的 App 版本?

ios - 无法获取当前类中弹出导航控件的概念

javascript - JavaScript 中公共(public)字段声明的意义是什么?

node.js - PhantomJs - 如何呈现多页 PDF

android - 直接使用 PrintManager Android 4.4 打印 PDF

android - 在 Root 设备 Android 上更改动态壁纸

android - MediaPlayer 无法在 Android Things Raspberry Pi 3 上运行

ios - MvvmCross ViewModel 从左边过渡