Rails 的即时通讯实现?

     2023-03-14     288

关键词:

【中文标题】Rails 的即时通讯实现?【英文标题】:instant messenger implementation for rails? 【发布时间】:2012-03-12 02:42:46 【问题描述】:

我已经搜索了一段时间,研究了几种技术来为 ruby​​ on rails 应用程序构建一个简单的即时消息系统。这似乎很复杂,因为我根本没有找到任何跨浏览器或任何 1-1 概念证明的实现。

调查过:

xmpp客户端(github上有Candy只支持群聊) xmpp 服务器和 Rails(很多麻烦没有好的集成) Juggernaut(编号 1-1,由于使用了 Web 套接字,因此 Internet Explorer 不支持) ryan bates 的私人酒吧(似乎能够做到这一点,但作为 ruby​​ 新手,几乎没有这方面的文档无法理解)

谁能给我推荐一个 Rails 即时通讯工具:

即跨浏览器 有很好的文档,实现示例 Instant Messenger,用户 A 与用户 B 对话,用户 B 与用户 A 对话

我真的不知道我将如何实现这个,任何人都可以给我建议如何解决这个问题?谢谢

【问题讨论】:

【参考方案1】:

正如埃里克所说,没有。消息传递是一件非常困难的事情。

现在我正在使用Pubnub,这是一个外部服务。没有关于 Rails 集成的很好的文档,所以你只能自己尝试。

在更好的记录方面,有 Faye,但这是一个内部进程,需要运行两个实例(一个用于响应 Faye 请求,一个用于运行您的应用程序)。在 Heroku 上做这件事有点棘手(而且成本更高),所以我只坚持使用 Pubnub。

关于 Faye 文档,请查看此 Railscast,出于隐私考虑,请查看 Private Pub。

编辑:如果您认为 Private Pub 难以集成.. 好吧,不是刻薄,但也许您应该在深入研究这个问题之前尝试更多地了解 Rails 和 Javascript,因为这不是一件容易的事(尽管看起来应该如此)

编辑 2: 另外,对于 faye,this tutorial might help you out.

对于这类事情,您最好使用 Node.js。

【讨论】:

Privatepub 本身并不难设置,问题在于在频道中管理,基本上有一个 2 人的房间名称并且订阅他们可以工作,也许我应该更多地研究它。 嗨@varatis 谢谢你的回答,它对我有很大帮助:) 只有一个问题:你是什么意思需要两个实例来运行?我对服务器设置没有太多经验谢谢 @medBo 基本上,想想你什么时候运行rails server。当您正常执行此操作时,您的计算机将一个执行线程完全放弃给该服务器 - 当该进程在前台运行时,您无法在该终端窗口中启动任何其他内容。 Heroku 同样不允许你启动另一个进程来运行像 Faye 这样的东西,或者做后台作业,除非你付费。 谢谢@varatis,我现在可以理解了:)如果我想要额外的午餐,我应该付多少钱?贵吗? 大约 15 美元/月。查看heroku.com/pricing。与 Linode 或 EC2 等其他服务相比,它并不昂贵。此外,它还为您省去了所有其他设置费用和诸如此类的麻烦。取决于你的时间/金钱权衡是什么。【参考方案2】:

正在进行的工作: 完整的 Facebook 克隆

https://github.com/rubytastic/im

请贡献代码,待修复但仍然古怪!

【讨论】:

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

im即时通讯实现原理

即时通讯(InstantMessenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行... 查看详情

实现SIP即时通讯框架

】实现SIP即时通讯框架【英文标题】:ImplementSIPinstantmessagingframework【发布时间】:2013-06-0507:34:44【问题描述】:我想实现一个适用于SIP的即时消息传递框架。我有SIP客户端和一个元素,该元素将从客户端获取所有消息,并处理... 查看详情

小程序如何集成即构im实现即时通讯发消息聊天

之前的文章已经介绍了如何实现Web端的即时通讯IM,为了让大家全面的体验通信互动的快乐。本文介绍如何使用ZIMSDK快速实现实现小程序端的基本的消息收发功能,在微信中实现一个mini版微信,也就是常见的聊天功能。之前的文... 查看详情

腾讯im即时通讯和即构im即时通讯那个比较好?

参考技术A现在市面上做即时通讯的厂商有很多,im即时通讯我比较推荐即构科技的,之前开发的直播产品接了即构的RTCSDK,整个接入过程很顺畅,近期因项目需实现即时通讯功能,同一厂商图方便抱着尝试态度接入ZEGO即构的IMSDK... 查看详情

android使用websocket实现即时通讯功能,聊天功能

参考技术A之前做这个功能,记录一下。即时通讯(InstantMessaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。但是如果项目有特殊要求... 查看详情

im即时通讯实现的原理

IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM... 查看详情

web端即时通讯实践:实现单机几十万条长连接

...c;SSE)是一种客户端服务器之间的通信技术(详见即时通讯网整理的文章《SSE技术详解:一种全新的HTML5服务 查看详情

rabbitmq实现即时通讯居然如此简单(代码片段)

MQTT协议MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上。MQTT最大优点在于,可以以极少的代码和... 查看详情

企业用的即时通讯软件都有哪些?

企业即时通讯产品作为企业适应数字化时代的必备通讯产品,其“去娱乐化”、“组织机构”、“协同办公”、“安全高效”的四大特性能够提高企业工作效率,改善企业工作流。随着数字时代的全面到来,国内企业对企业即时... 查看详情

如何实现im即时通讯“消息”列表卡顿优化

...互联网的普及,无论是IM开发者还是普通用户,IM即时通讯应用在日常使用中都是必不可少的,比如:熟人社交的某信、IM活化石的某Q、企业场景的某钉等,几乎是人人必装。无论哪款IM,随着“消息”列表... 查看详情

如何搭建一个自己的im即时通讯聊天软件?

如何搭建一个自己的IM即时通讯聊天软件?搭建一个自己的IM即时通讯聊天软件的框架如下:1、CIM中的各个组件均采用SpringBoot构建。2、采用Netty+GoogleProtocolBuffer构建底层通信。3、Redis存放各个客户端的路由信息、账号信息、在线... 查看详情

实现ios端即时通讯开发的高性能消息推送

...能力,通常在以下场景下非常有用:   1)IM即时通讯聊天应用:聊天消息通知、音视频聊天呼叫等;   2)新闻资讯应用:最新资讯通知等, 查看详情

socket.io实现即时通讯消息推送的思路

对于想要实现Web端的实时通讯,因为用户访问Web站点的过程是基于HTTP协议的,而HTTP协议的工作模式是:请求-响应,客户端发出访问请求,服务器端以资源数据响应请求。 也就是说,服务器端始终是被动... 查看详情

web端即时通讯技术:websocketsocket.iosse

传统的Web端即时通讯技术从短轮询到长连询,再到Comet技术,在如此原始的HTML标准之下,为了实现所谓的“即时”通信,技术上可谓绞尽脑汁,极尽所能。自从HTML5标准发布之后,WebSocket这类技术横空出世&... 查看详情

怎样实现网页端im即时通讯中的@人功能

第一次使用@人功能到现在已经有差不多10年了,初次使用是通过微博体验的。@人的功能现在遍布各种应用,基本上涉及社交(IM、微博)、办公(钉钉、企业微信)等场景,就是一个必不可少的... 查看详情

浅析现代web端im即时通讯开发技术

传统的Web端即时通讯技术从短轮询到长连询,再到Comet技术,在如此原始的HTML标准之下,为了实现所谓的“即时”通信,技术上可谓绞尽脑汁,极尽所能。自从HTML5标准发布之后,WebSocket这类技术横空出世&... 查看详情

即时通讯如何基于netty实现海量接入的推送服务

作为高性能的NIO框架,利用Netty开发高效的推送服务技术上是可行的,但是由于推送服务自身的复杂性,想要开发出稳定、高性能的推送服务并非易事,需要在设计阶段针对推送服务的特点进行合理设计。 最大句... 查看详情