小编Kár*_*rás的帖子

何时处理Socket.io通知?

我正在开发一个写在的IOS社交应用程序SWIFT.

后端是PHP, MySQL(用于事件处理),+一点NodeJS, Socket.io(用于实时聊天和通知)


我成功地聊了聊:

当用户发送消息时,Socket.io服务器通过以下方式处理它:

  • 它将数据插入数据库
  • 如果成功,则将消息发送给所有参与者用户

/为此,后端只是Socket.io服务器,它也处理数据库


工作良好.

但是有些事件并不是实时的,但我仍然希望通过Socket.io向给定用户发送通知.

例如:如果已经喜欢帖子,则将noti发送给帖子所有者

我已经编写了PHP文件,用于在数据库中保存,但是

我该怎么做通知部分,安全吗?


我想出了3个想法:

  1. 应用程序向我的PHP + MySQL后端发送Web请求,它处理那里的数据,然后在返回"成功"后,应用程序(SWIFT)向帖子所有者发送通知(通过Socket.io XCode pod)
func likePost(postId : Int, completion: @escaping (ActionResult?)->()){

        let connectUrl = URL(string: appSettings.url + "/src/main/like.php")
        var request = URLRequest(url: connectUrl!)
        request.httpMethod = "POST"
        let postString = "userId=\(userId)&session=\(session)&pId=\(postId)"
        request.httpBody = postString.data(using: String.Encoding.utf8)


        let task = URLSession.shared.dataTask(with: request) {
            (data: Data?, response: URLResponse?, error: Error?) in

            if error != nil {
                return completion(ActionResult(type: 0, code: 0, …
Run Code Online (Sandbox Code Playgroud)

php sockets notifications node.js swift

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

TableView计算错误的estimatedHeightForRowAt

我正在进行类似应用程序的聊天,其中tableView显示动态高度单元格.


单元格以正确的方式限制其视图和子视图

这样AutoLayout 就可以预测细胞的高度

(上,下,领先,尾随)


但仍然- 正如您在视频中看到的那样 -滚动指示条显示计算出错误的高度:

它会在出现新行时重新计算高度.

视频: https ://youtu.be/5ydA5yV2O-Q

(在第二次尝试向下滚动一切都很好)


码:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableView.automaticDimension
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的问题.有人可以帮我吗?

更新1.0

添加了github:

https://github.com/krptia/Test

scrollview tableview swift

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

为我的php应用程序(社交应用程序)创建API版本控制

我目前正在开发社交应用程序。

我想在我的PHP后端上安装一个版本控制系统,但是我不知道从哪里开始:我在网上查找了很多文章,但是我真的不明白我所发现的内容。

假设我的应用程序是v1.0。然后,我创建了一个新版本v2.0,当然我也更新了PHP文件。此后,如果某人尚未从v1.0更新其应用程序,我希望他们能够访问myapp.com/v1.0/该应用程序,以免该应用程序崩溃。

你会推荐什么?

我的一个典型的PHP文件如下所示:

<?php

// Include files

include_once ('../../config.php');

include_once (ROOT_DIR . '/config/includes.php');

$_USERDATA = Validator::validateUser($_POST["userId"], $_POST["session"]);

// Valid session

$qry = $db->prepare('SELECT n.id, n.type, n.time, n.isRead, n.postId, n.commentId, n.text, n.inReplyToCommentId, u.id as byUserId, 
    ( SELECT COUNT(nu.id)
    FROM notificationUsers AS nu
    WHERE nu.notificationId = n.id ) as detail1,
    ( SELECT nu2.userId
    FROM notificationUsers AS nu2
    WHERE nu2.notificationId = n.id ORDER BY nu2.id DESC LIMIT 1 ) as latestUserId FROM notifications AS n LEFT JOIN userData AS …
Run Code Online (Sandbox Code Playgroud)

php versioning api

7
推荐指数
1
解决办法
180
查看次数

无需切换即可从 AVCaptureMovieFileOutput 获取图像

我想防止应用程序在视频录制和拍照之间切换时出现延迟:仅使用 AVCaptureMovieFileOutput 并在捕获图像时从中获取快照。

就像 SnapChat 所做的那样。

有可能吗?我还没有找到任何相关的文章。

我不想在输出之间切换,因为它滞后

编码:

@IBOutlet var cameraView: UIView!

@IBOutlet var cameraSwitchButton: UIButton!
@IBOutlet var captureButtonView: CaptureButton!
@IBOutlet var cameraFlashButton: UIButton!

var captureSession = AVCaptureSession()
let movieOutput = AVCaptureMovieFileOutput()
var activeInput: AVCaptureDeviceInput!
var previewLayer = AVCaptureVideoPreviewLayer()

var outputURL: URL!

var connection : AVCaptureConnection!


override func viewDidLoad() {

    if setupSession() {
        setupPreview()
        startSession()
        connection = movieOutput.connection(with: AVMediaType.video)
        if (connection?.isVideoStabilizationSupported)! {
            connection?.preferredVideoStabilizationMode = AVCaptureVideoStabilizationMode.off
        }
    }


    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(captureButtonTapped))
    let longGesture = UILongPressGestureRecognizer(target: self, …
Run Code Online (Sandbox Code Playgroud)

avcapturemoviefileoutput swift

3
推荐指数
1
解决办法
1642
查看次数

如果背景图像不是白色,请更改文字颜色?

我已经阅读了很多关于此的文章,但没有找到任何解决我问题的方法.

是否有可能以某种方式使用Jquery或/和CSS更改基于背景图像的文本颜色?

我必须根据要求建立一个响应式网站,但卡住了.

在此输入图像描述

html css

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

TableView 数据滞后

所以我面临一个问题

重新加载/添加行几次后,表视图变慢(滚动、点击响应变慢)


所以在用户登录后,应用程序会下载 10 个"WorldMessages"。它被加载到这个表视图中。

如果用户向下滚动,它会调用一个加载更多 10 的函数: loadOlderOwnWorldMessages()

每个单元格都有一个tapGestureRecognizer+longPressGestureRecognizer

而且我不得不提一下,如果用户重新加载 tableView,那么它会清除数据并再次加载前 10 个 WorldMessages


问题

我不知道为什么,但是例如,如果我重新加载 tableView 50 次并且每次向下滚动一点或更多,那么 tableView 就会变慢。

也许是因为点击/长按手势识别器或限制?

该应用程序如下所示:

在此处输入图片说明

卡顿后的视频:

https://www.youtube.com/watch?v=65NkjS-Kz3M

(如果我杀死应用程序并再次打开它,那么它会再次顺利运行,直到我重新加载它几次)

代码:

// 这不是整个代码,我删除了很多不重要的行(如重新加载函数等)

class ProfileViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITabBarDelegate {

    // Classes
    let handleData = HandleData()
    let handleResponses = HandleResponses()
    let worldMessagesFunctions = WorldMessagesFunctions()
    let profileFunctions = ProfileFunctions()

    // View Objects
    @IBOutlet var tableView : UITableView!

    // Variables
    var userWorldMessages = [WorldMessage]()
    var lastContentOffsetY : CGFloat?

    var currentSelectedWorldMessageIndexPath …
Run Code Online (Sandbox Code Playgroud)

lag tableview ios swift

0
推荐指数
1
解决办法
1428
查看次数