NodeJS + SocketIO 推送到移动应用

Posted

技术标签:

【中文标题】NodeJS + SocketIO 推送到移动应用【英文标题】:NodeJS + SocketIO pushing to Mobile App 【发布时间】:2012-04-22 09:49:42 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

要实现这一点,其中一个用例是,例如,您要开发一个基于 phonegap 的应用程序,该应用程序基本上是 html、CSS 和 JS。因此,要拥有专用的全双工通信通道,您可以使用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 中包含您想要利用 Web 套接字功能的 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。

希望这会有所帮助。

【讨论】:

您好,感谢您的回复。如果我想在本地做这个怎么办? 我相信这对你有用 - code.google.com/p/unitt/wiki/UnittWebSocketClient 它不需要存在于 webview 中,socket.io 也有 java 和其他语言的 api

以上是关于NodeJS + SocketIO 推送到移动应用的主要内容,如果未能解决你的问题,请参考以下文章

从 Laravel(NodeJS)外部推送到 Laravel 队列

使用 OneSingnal 从 NodeJS 发送通知推送到 React Native

在 AngularJS 和 NodeJS 中隐藏 API 密钥并推送到 Git 和 Heroku

facebook 如何将通知、好友请求和其他更新推送到其 Android 移动应用程序?

nodejs socketio 多个域(单独的io)

将元素推送到嵌套数组猫鼬 nodejs