我希望实现某种聊天服务器.我希望它能够扩展.这似乎是个大问题,所以我想我希望答案是方向指针,有点探索性.
最终用户客户端是Web或电话客户端.我认为某种websocket实现,比如Socket.IO很好.
在服务器端,我希望使用Node.js. 我希望架构具有可扩展性,以便用户数量不受限制(在合理的范围内,不会出现大受欢迎的机会,如果是这样的话,让更聪明,有经验的人工作的机会是合理的而不是目前只是我编码)每个聊天室的用户数量希望不受限制,或者可能是一些固定的大数字.这意味着我需要使用Node编写的几个服务器进行水平扩展.
假设一些负载均衡器(并且希望将来不是单点故障,但我不知道如何实现这一点,或者可能只是转移到AWS)正在从最终客户端向聊天服务器发送SocketIO连接.不同用户与不同服务器的连接可能在同一个房间,因此需要将消息发送到其他服务器.
我怎么能切实地实现这样的东西?希望不要太复杂.
问题:(1)如果所有服务器都需要处理所有消息,因为用户可以通过任何服务器登录,这是否会扩展?(2)我是否需要某种消息队列让服务器在它们之间进行通信?Rabbitmq的Pub-sub是否适用于此?或者如果是zeromq,我将如何使用pub sub进行缩放?Zeromq指南解释了使用REQ/REP类型的应用程序扩展到多个服务器.但不是Pub Sub.(3)或者我应该从XMPP开始?
我希望尽可能简单地工作.
我目前仍在使用Cordova 7.1.0,因为它有一个"--nofetch"选项,在Cordova 8中删除了.
每次我尝试插件添加或删除,或平台添加或删除,它需要2分钟.(我有41个插件,好吧,我没有真正计时,但它已经很久了.)
我刚刚重新创建项目时速度很快,但是当我添加41个插件时,事情变得很慢.
如果我这样做,删除平台需要4至5秒--nofetch.但是,当我只想删除东西时,它为什么会取出任何东西?!我把头发拉过这个!
我不知道引擎盖下面是什么.
编辑
不知道为什么我会被标记为它.这个问题非常真实.我用相同的Cordova平台重新创建了整个项目,速度更快.
我正在尝试将针对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中的三个设备才能将它们完全连接起来?
Podspec文档说preserve_path用于"任何不应该清理的文件(CocoaPods默认清除所有文件)."
"干净"是什么意思?
我正在尝试用"从头开始编程"这本书来学习装配.本书仅涉及32位指令.有没有办法在64位Ubuntu系统上运行示例代码?我无法理解GNU汇编程序手册页上的内容,但我听到了-m32标志应该这样做.但这不是一个公认的选择.
如何让本书中的示例轻松工作?
有没有关于Guard Malloc解释和解决问题的好教程?
我收到的消息如"VM无法分配262144字节",我不知道这意味着什么.最初我认为系统中缺少RAM,但可能不是这样.如果这是一个问题,我迫切需要学习如何解释和捕获错误.
我与Guard Malloc的另一个问题是它是否保护在项目的C代码中分配的内存(它应该正确?考虑名称)还是仅仅应用于Objective-C?我问的原因是我刚刚发现NSZombieEnabled只适用于Obj-C.
非常感谢帮助.几天来我一直在搞乱可能的内存错误.我还没有能够为iOS编译Valgrind.
在iPhone项目中,我正在使用Xcode故事板在主滚动视图中嵌入一些包含视图的内容.我听说包含视图也是一个"嵌入segue".现在我不一定要嵌入其他子控制器,我本可以创建自定义视图并在这些自定义子视图中使用原始子控制器的逻辑.(我想在发布之后我就会这样做,因为它看起来更容易.)但我已经完成了代码,并想知道保持它的难易程度.
由于滚动视图内容大于主屏幕边界,因此在故事板中布置容器视图更加困难.我可以想到三种方法来解决它.我也可以
有没有办法在Xcode中创建嵌入segue,但是没有把它放进去,而是像其他视图过渡一样做"手动segue"之类的东西?我无法在故事板中看到布局,但至少它比#3更容易,我不必像#2那样上下拖动,这似乎很傻.
我正在尝试使用HTML 5进行表单验证,如developer.mozilla.org 数据表单验证(developer.mozilla.org)中所述.我正在使用Chrome浏览器进行测试.两个问题.
checkValidity()当我有一个输入类型时,我无法使表单传递datetime-local.datetime-local的输入格式非常严格(Chrome强制它以某种格式)但它只是没有通过.为什么?datetime-local字段不应是必填字段.当用户未指定输入时,如何通过?我希望继续扫描蓝牙设备,我希望应用程序在后台运行.可能吗?好像我有一个连接的蓝牙设备,如果有数据传输,那么该应用程序在后台保持清醒状态.但是,如果我只是在后台扫描,似乎即使我已经Uses Bluetooth LE accessories检查(bluetooth-central在plist中),应用程序最终也没有运行.
有没有办法让应用程序保持活动状态并在设备处于后台时连续扫描设备?
ios ×4
objective-c ×2
xcode ×2
architecture ×1
assembly ×1
bluetooth ×1
cocoapods ×1
containers ×1
cordova ×1
html5 ×1
javascript ×1
node.js ×1
security ×1
validation ×1