小编hug*_*gie的帖子

实施可扩展聊天服务器的策略

我希望实现某种聊天服务器.我希望它能够扩展.这似乎是个大问题,所以我想我希望答案是方向指针,有点探索性.

最终用户客户端是Web或电话客户端.我认为某种websocket实现,比如Socket.IO很好.

在服务器端,我希望使用Node.js. 我希望架构具有可扩展性,以便用户数量不受限制(在合理的范围内,不会出现大受欢迎的机会,如果是这样的话,让更聪明,有经验的人工作的机会是合理的而不是目前只是我编码)每个聊天室的用户数量希望不受限制,或者可能是一些固定的大数字.这意味着我需要使用Node编写的几个服务器进行水平扩展.

假设一些负载均衡器(并且希望将来不是单点故障,但我不知道如何实现这一点,或者可能只是转移到AWS)正在从最终客户端向聊天服务器发送SocketIO连接.不同用户与不同服务器的连接可能在同一个房间,因此需要将消息发送到其他服务器.

我怎么能切实地实现这样的东西?希望不要太复杂.

问题:(1)如果所有服务器都需要处理所有消息,因为用户可以通过任何服务器登录,这是否会扩展?(2)我是否需要某种消息队列让服务器在它们之间进行通信?Rabbitmq的Pub-sub是否适用于此?或者如果是zeromq,我将如何使用pub sub进行缩放?Zeromq指南解释了使用REQ/REP类型的应用程序扩展到多个服务器.但不是Pub Sub.(3)或者我应该从XMPP开始?

我希望尽可能简单地工作.

architecture message-queue node.js

13
推荐指数
1
解决办法
5591
查看次数

Cordova添加/删除插件和平台真的很慢

我目前仍在使用Cordova 7.1.0,因为它有一个"--nofetch"选项,在Cordova 8中删除了.

每次我尝试插件添加或删除,或平台添加或删除,它需要2分钟.(我有41个插件,好吧,我没有真正计时,但它已经很久了.)

我刚刚重新创建项目时速度很快,但是当我添加41个插件时,事情变得很慢.

如果我这样做,删除平台需要4至5秒--nofetch.但是,当我只想删除东西时,它为什么会取出任何东西?!我把头发拉过这个!

我不知道引擎盖下面是什么.

编辑

不知道为什么我会被标记为它.这个问题非常真实.我用相同的Cordova平台重新创建了整个项目,速度更快.

cordova

12
推荐指数
0
解决办法
434
查看次数

构建多个体系结构的框架(arm64,armv7,armv7s)

我正在尝试将针对arm64,armv7和armv7s的项目构建上传到TestFlight.它正在使用另一个项目的框架.但frameowork似乎只为arm64而不是arm64(file was built for arm64 which is not the architecture being linked (armv7))构建.

问题是如何使框架包含所有体系结构?我希望将项目分开.而且我不关心模拟器.我想确保它是为发布而构建的.

这是框架目标:

在此输入图像描述

编辑:我的项目是基于Cordova.所以它使用的是一个使用预构建框架的插件.有一些说明用于构建一个胖框架,包含模拟器和设备,然后将其连接起来lipo.我需要的是我没有的设备架构.这是否意味着我需要arm64,armv7和armv7s中的三个设备才能将它们完全连接起来?

ios ios-frameworks

11
推荐指数
1
解决办法
3378
查看次数

Cocoapods podspec preserve_paths

Podspec文档说preserve_path用于"任何不应该清理的文件(CocoaPods默认清除所有文件)."

"干净"是什么意思?

cocoapods

10
推荐指数
1
解决办法
4786
查看次数

在64位系统上编译32位汇编(Ubuntu)

我正在尝试用"从头开始编程"这本书来学习装配.本书仅涉及32位指令.有没有办法在64位Ubuntu系统上运行示例代码?我无法理解GNU汇编程序手册页上的内容,但我听到了-m32标志应该这样做.但这不是一个公认的选择.

如何让本书中的示例轻松工作?

assembly

10
推荐指数
1
解决办法
6096
查看次数

如何解释Xcode中Guard Malloc的"无法分配VM"

有没有关于Guard Malloc解释和解决问题的好教程?

我收到的消息如"VM无法分配262144字节",我不知道这意味着什么.最初我认为系统中缺少RAM,但可能不是这样.如果这是一个问题,我迫切需要学习如何解释和捕获错误.

我与Guard Malloc的另一个问题是它是否保护在项目的C代码中分配的内存(它应该正确?考虑名称)还是仅仅应用于Objective-C?我问的原因是我刚刚发现NSZombieEnabled只适用于Obj-C.

非常感谢帮助.几天来我一直在搞乱可能的内存错误.我还没有能够为iOS编译Valgrind.

xcode objective-c

9
推荐指数
1
解决办法
3684
查看次数

是否可以在带有代码的scrollview中嵌入segue/contains视图?

在iPhone项目中,我正在使用Xcode故事板在主滚动视图中嵌入一些包含视图的内容.我听说包含视图也是一个"嵌入segue".现在我不一定要嵌入其他子控制器,我本可以创建自定义视图并在这些自定义子视图中使用原始子控制器的逻辑.(我想在发布之后我就会这样做,因为它看起来更容易.)但我已经完成了代码,并想知道保持它的难易程度.

由于滚动视图内容大于主屏幕边界,因此在故事板中布置容器视图更加困难.我可以想到三种方法来解决它.我也可以

  1. 向上和向下拖动滚动视图并将容器视图放在那里.
  2. 只需在滚动视图中拖动一些视图,然后在主控制器的viewDidLoad中调整框架的大小.(如果我正在使用自动布局,那么我会在那里添加自动布局)但似乎只是藐视故事板和嵌入segue的优势.但是如果我必须与子视图控制器交互,它似乎比#3更容易.
  3. 忘记故事板,然后编写一个包含控制器逻辑(如WWDC 2012视频实现UIViewController Containment中所述),但这看起来很复杂.

有没有办法在Xcode中创建嵌入segue,但是没有把它放进去,而是像其他视图过渡一样做"手动segue"之类的东西?我无法在故事板中看到布局,但至少它比#3更容易,我不必像#2那样上下拖动,这似乎很傻.

xcode containers objective-c ios

9
推荐指数
1
解决办法
1万
查看次数

输入datetime-local的HTML 5表单验证

我正在尝试使用HTML 5进行表单验证,如developer.mozilla.org 数据表单验证(developer.mozilla.org)中所述.我正在使用Chrome浏览器进行测试.两个问题.

  1. checkValidity()当我有一个输入类型时,我无法使表单传递datetime-local.datetime-local的输入格式非常严格(Chrome强制它以某种格式)但它只是没有通过.为什么?
  2. datetime-local字段不应是必填字段.当用户未指定输入时,如何通过?

javascript validation html5

9
推荐指数
1
解决办法
1747
查看次数

iOS蓝牙BLE安全性和"Just works"关联模型

根据本文档本白皮书,有一些安全措施旨在防止被动窃听蓝牙BLE连接.有没有办法在iOS中央管理器和外围设备之间实现安全连接?

具体来说,我正在寻求实现"Just works association model".我想知道iPhone是否可行.

security ios core-bluetooth bluetooth-lowenergy

8
推荐指数
2
解决办法
8878
查看次数

iOS蓝牙背景模式

我希望继续扫描蓝牙设备,我希望应用程序在后台运行.可能吗?好像我有一个连接的蓝牙设备,如果有数据传输,那么该应用程序在后台保持清醒状态.但是,如果我只是在后台扫描,似乎即使我已经Uses Bluetooth LE accessories检查(bluetooth-central在plist中),应用程序最终也没有运行.

有没有办法让应用程序保持活动状态并在设备处于后台时连续扫描设备?

bluetooth ios bluetooth-lowenergy

8
推荐指数
2
解决办法
1万
查看次数