如何将 android 连接到可操作的 websocket 连接?

Posted

技术标签:

【中文标题】如何将 android 连接到可操作的 websocket 连接?【英文标题】:How do I connect android to actioncable websocket connection? 【发布时间】:2015-11-27 13:20:42 【问题描述】:

我是 android 开发的新手,我正在尝试在我的 Android 应用程序中添加一个聊天室,由 Rail 的新 actioncable 提供支持。我目前的聊天室使用 Firebase 工作,这很酷。但是,我想拥有 Firebase 不支持的其他功能,所以我想将所有内容都移到我的服务器上。问题是我对android上的websockets了解不多。

以下是在 rails 浏览器端使用的 javascript 信息。这在没有问题的情况下有效。

hostname = (url) ->
  parser = document.createElement('a')
  parser.href = url
  parser.href = parser.href
  parser.protocol = parser.protocol.replace("http", "ws")
  parser.href

@App = 
App.cable = Cable.createConsumer hostname("/")

App.messages = App.cable.subscriptions.create "MessagesChannel",
  received: (data) ->
    messages = $('#messages')
    messages.append(data.message)
    messages.scrollTop(messages.height() + 1000)

【问题讨论】:

【参考方案1】:

Actioncable 逻辑与其他常见的 websocket 框架没有太大区别。有许多 Android websocket 库。

试试看,https://github.com/codebutler/android-websockets

还有, actioncable 的完整文档还没有准备好。(https://github.com/rails/rails/issues/22673)

你应该尝试阅读前端可操作框架的源文档(coffeescript)。 https://github.com/rails/actioncable/blob/master/lib/assets/javascripts/cable/consumer.coffee https://github.com/rails/actioncable/blob/master/lib/assets/javascripts/cable/subscription.coffee

【讨论】:

我放弃了,只是用 Node.js + Express + socket.io 构建了一个聊天应用程序,并通过我的 rails 服务器进行身份验证 codebutler/android-websocket 不执行closing handshake 所需的RFC 6455 并且可能在关闭时抛出异常。详情请见this。 @fiyah 是的,那是个不错的选择,而且有很多不错的 websocket 库,faye(actioncable uses faye) 和 eventmachine。另一个选择是 puser.com。祝你好运!

以上是关于如何将 android 连接到可操作的 websocket 连接?的主要内容,如果未能解决你的问题,请参考以下文章

将 USB 设备连接到 Android 模拟器?

连接到 WebSocket 时如何修复“Access-Control-Allow-Origin”错误?

如何将 MS ACCESS 连接到 Android 应用程序

如何将android设备连接到Spring websocket服务器

如何将 Android 手机连接到 Visual Studio Code?

如何将 Android 应用程序连接到 MySQL 数据库? [复制]