Tag: swift

跨语言HMAC / SHA256 / Base64的问题

我正在使用node.js脚本为azure documentDB创build一个签名 – 简化版本是(结果在底部): – var crypto = require("crypto"); var masterKey = "ABCDE" var key = new Buffer(masterKey, "base64"); var signature = crypto.createHmac("sha256", key).update("FGHIJ").digest("base64"); console.log("\n\n"+signature) // RNkID54/1h1H9p3NWPeRA0mOW2L0c0HUJGTTY2GPbDo= 这工作,并做我需要的。 我试图用CommonCrypto在Swift中做同样的事情 let keyString = "ABCDE" let body = "FGHIJ" let utf8data = keyString.dataUsingEncoding(NSUTF8StringEncoding) let key = utf8data!.base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) let str = body.cStringUsingEncoding(NSUTF8StringEncoding) let strLen = body.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) let […]

使用Gridfsstream将videostream从mongoDBstream式传输到ios应用程序

我是一个相对较新的程序员,试图快速创build一个iOSvideostream应用程序。 我已经在node.js中写了后端,并且有一个到mongoDB的mongoose连接。 我已经能够使用下面的代码和gridfs上传video到数据库 function (req, res, next) { req.pipe(gfs.createWriteStream({ filename: 'filename'})); res.send("success"); }; 我正在尝试使用以下代码来stream式传输video gfs.findOne({_id: req.params.id}, function (err, file) { if (err) { return res.status(400).send(err); } else if (!file) { return res.status(404).send(' '); } else { res.header("Content-Type","video/mp4"); res.header("X-Content-Type-Options", "nosniff"); res.header("Accept-Ranges", "bytes"); res.header("Content-Length",file.length); var readStream = gfs.createReadStream({_id: file._id}); readStream.on('open', function () { console.log('Starting download…'); }); readStream.on('data', […]

强types和弱types语言之间的差异

我来自JS世界,我习惯于对可能由于input较弱而导致的所有可能的情况进行彻底的testing。 这样,在一个函数中,我检查所有传入的参数符合一些标准。 作为一个例子,在function createUser(username, id, enabled, role){}我将检查username是否是一个string, id是一个UUID, status是布尔值,angular色是一个string,必须是“pipe理员”,“用户'或'系统'。 我为这些情况创buildtesting,以确保当我传递错误的参数,testing失败,我需要find导致这个错误。 最后,我进行了很多testing,其中很多都是types检查testing。 现在,我正在使用强types的Swift。 我使用它来创build一个客户端应用程序,从NodeJS服务器端使用数据。 如果我想在Swift中创build一个类似的createUser()函数,看起来像我需要less得多的testing,因为types检查是在语言本身。 是不是认为基本上强types的语言比弱types的语言需要更less的testing呢? 在Swift中,一些testing似乎是不必要的,整个testing过程看起来更轻量级。 有什么事情可以通过以某种特定的方式使用语言结构来编写更less的testing,而且还要确保代码是正确的,并且可以按照定义通过testing?

Swift / iOs /套接字:如何接收套接字“事件免费”的数据?

我正在努力构build一个简单的基本的真正的聊天应用程序,使用苹果的SWIFT客户端部分和nodejs的服务器端。 我使用websockets库来pipe理客户端/服务器通信。 我很快注意到,似乎我无法捕捉来自我的服务器的数据,而无需启动事件。 我试图让我的应用程序支持双向聊天,一方面在xcode 7中从我的iOS模拟器发送/接收消息,另一方面在桌面web浏览器(firefox)中做同样的事情。 从两个部分创build的所有消息都成功注册在我的mongodb数据库(通过nodejs mongoose),但在iOs模拟器时,我devise了一个聊天界面,我需要重新启动模拟器,每次我想看到新的传入消息。 我的目标是:在iOs仿真器UI中实时显示来自firefox和iOS模拟器的所有传入消息,当然使用套接字。 当我从我的浏览器发送消息到我的iOs应用程序,应该立即显示这一个。 当我从iOs用户界面发送信息的时候是这样的,但是从Firefox发出的信息却不是这样。 请,我需要一些帮助,以了解我的代码有什么问题(分三部分): Xcode / Swift: import Foundation import UIKit class ViewTwo: UIViewController,UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate{ var lab : [String!] = []; var desc : [String!] = []; var dictionnary : [String:String!] = ["user": nil,"message" : nil]; var voidDict:[String:String!] = ["content" : "whatever"]; @IBOutlet var tableView: UITableView! @IBOutlet var txtField: […]

Swift iOS应用程序不使用Socket.IO连接到服务器

我即将写一个非常简单的iOS应用程序。 我希望应用程序通过使用Socket.IO连接到服务器。 我已经为我的项目安装了Cocoapods的Socket.IO,一切进展顺利。 问题是我运行我的服务器,然后应用程序模拟器后,应用程序没有连接到服务器。 我没有得到任何types的错误消息或类似的东西,但是服务器应该在连接套接字时在控制台/terminal上打印消息。 这是套接字pipe理器类 import UIKit import SocketIO class SocketManager: NSObject { static let sharedInstance = SocketManager() override init() { super.init() } var socket: SocketIOClient = SocketIOClient(socketURL: NSURL(string: "localhost:3000")!) func establishConnection() { socket.connect() } func closeConnection() { socket.disconnect() } } 这是AppDelegeate类: import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func […]

通过Node.js服务器后端连接两个iOS设备

我对于快速和后端开发来说是相当新颖的,所以如果我的逻辑有缺陷,请把它放在一边。 我正在尝试为ios构build一个超级样式的应用程序,并有一个用户端界面,一个驱动程序端界面和一个在node.js中构build的后端。 我的问题是,如果有人从用户端select了“驱动程序”到驱动程序端,我该如何进行通信。 我假设这是来自用户端的请求和来自驱动程序端的请求的组合,但我很困惑如何在发生更改时通知驱动程序端应用程序。 我是否必须不断地向数据库请求数据,还有更好的方法来保存节点和应用程序之间的连接吗? 任何帮助是极大的赞赏。

iOS没有使用apn nodejs接收后台推送通知

我的设备没有收到后台推送通知。 我在智慧结束,我试过每个教程,我可以find并通过堆栈溢出search。 设备和APN被设置为debugging/开发 我可以成功注册设备令牌 我有一个活动的P8键与推送通知服务 APN表示推送消息已成功发送 didReceiveRemoteNotification不会触发 在背景和前景尝试与应用程序 使用AWS:入站 – 端口22,出站 – 所有端口 这是回应: { “发送”:[{ “设备”: “cc7ec9a821cf232f9510193ca3ffe7d13dd756351794df3f3e44f9112c037c2a”}], “失败”:[]} 这是我的代码: AppDelegate.swift import UIKit import UserNotifications @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { if #available(iOS 10, *) { let center = UNUserNotificationCenter.current() center.delegate = self […]

swift – 我可以连接到socket.io服务器,但我不能发射事件

我是初学者socket.io现在我可以连接到套接字服务器和服务器login我的连接,但我不能发送事件到服务器这里是我的代码: let socket = SocketIOClient(socketURL: URL(string: "http://xxxxxxx:3000")!) socket.connect() let username = "yay" socket.emit("add", username)

无论如何,从Swift中的socket.io方法返回的东西吗?

我正在构造一个套接字方法,服务器端将传递一个JSON数组到客户端。 之后,我想传递数据来使用其他function。 但是Swift中的套接字方法限制了我这样做,因为它是一个无效函数 这是方法的例子 没有任何东西可以从这个闭包中转义出来,而且我似乎只能在socket方法中进行操作 是否有任何解决方法,我可以操纵套接字方法,以便我的数据超出该范围?

Braintree node.js w / iOS 9 Swift 2.1 – 客户端令牌错误

我试图设置一个相对简单的Braintree服务器运行在Node.js与我的客户端写在Swift 2.1 iOS 9,而我能够logging客户端令牌,我收到以下错误: [BraintreeSDK] ERROR Unsupported client token version. Please ensure your server is generating a valid Braintree ClientToken with a server-side SDK that is compatible with this version of Braintree iOS. 以下是我的服务器代码(从BraintreeDev仓库改编而来): 'use strict'; var express = require('express'); var app = express(); var braintree = require('braintree'); var bodyParser = require('body-parser'); var parseUrlEnconded = […]