suchen
HeimBackend-EntwicklungPHP-Tutorial请教要如何实现类似新浪微博的网页私信推送功能

目前正在做一个社交网站 (Thinkphp+mysql), 我想当某些用户触发了一些条件的时候通知另外一些在线的用户,比如说:发私信、给对方送了一件小礼物

目前我想到唯一的方法是 :
把要发送的消息放进Redis,然后在Action这个基类做一个redis的查询,这样用户每进行一次操作都会去查这个Redis是否有内容。但是这样不太科学,属于是被动式查询。

请教一下各位都有什么好的方法,万分谢谢!

回复内容:

目前正在做一个社交网站 (Thinkphp+mysql), 我想当某些用户触发了一些条件的时候通知另外一些在线的用户,比如说:发私信、给对方送了一件小礼物

目前我想到唯一的方法是 :
把要发送的消息放进Redis,然后在Action这个基类做一个redis的查询,这样用户每进行一次操作都会去查这个Redis是否有内容。但是这样不太科学,属于是被动式查询。

请教一下各位都有什么好的方法,万分谢谢!

https://github.com/walkor/web-msg-sender
这个绝对是你想要的,websocket+workerman实现的

DEMO
后台发送消息的页面 http://workerman.net:3333/
用户接收消息的页面 http://workerman.net/web-msg-sender.html

原理:用户打开页面后浏览器会自动向后端服务器发送一个websocket(浏览器支持HTML5或者Flash就可以)连接,后端hold住这些连接,当想推送消息给浏览器时,向这些websocket连接写数据即可。

优点

  1. 非轮询,性能很高,普通的服务器即可维持上万的连接
  2. 实时性好
  3. 兼容各种浏览器包括ie6(客户端支持flash或者html5任意一个就行)

1.轮询或者长轮询(普遍采用这种方式。这个也就是你说的方式,利用ajax不停的去请求服务器,看有没有新消息)
2.webSocket(需要浏览器支持html5。这个可以实现服务器主动推送。)
3.flash(一般网页游戏中都是利用这种方式)

1 轮询
用ajax隔一秒钟向后台询问
2 长连接
发送ajax请求到后台,但是后台阻塞不返回,知道快要超时再返回,途中遇到新消息时间可立即返回
3 websocket
客户端和服务器端建立连接通道,服务器可以主动发消息给浏览器,HTML5支持的特性

我觉得只要用户量达到一定规模,小公司做产品的话这个就应该走三方推送(极光推送,百度云推送等)去做,即使付费
自己实现的话设备和运维成本高

SignalR

内容的字数过少, 请详细描述

自己实现太麻烦,建议你使用GoEasy.免费的网页推送服务。
自己不用写代码,支持所有语言,几分钟就可以实现一个推送功能,非常简单,速度快,还可靠。
http://goeasy.io

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie können Sie Sitzungsangriffe für Sitzungen verhindern?Wie können Sie Sitzungsangriffe für Sitzungen verhindern?Apr 28, 2025 am 12:25 AM

Zu den wirksamen Methoden zur Verhinderung fester Sitzungsangriffe gehören: 1. Regenerieren Sie die Sitzungs -ID, nachdem sich der Benutzer angemeldet hat; 2. Verwenden Sie einen sicheren Algorithmus für Sitzungs -ID -Generierung; 3.. Implementieren Sie den Timeout -Mechanismus für Sitzungen; 4. Verschlüsseln Sie Sitzungsdaten mithilfe von HTTPS. Diese Maßnahmen können sicherstellen, dass die Anwendung bei festgelegten Sitzungen unzerstörbar ist.

Wie implementieren Sie eine Sitzung ohne Sitzung und Authentifizierung?Wie implementieren Sie eine Sitzung ohne Sitzung und Authentifizierung?Apr 28, 2025 am 12:24 AM

Die implementierende Sitzungsfreie Authentifizierung kann durch die Verwendung von JSONWEBTOKENS (JWT), einem tokenbasierten Authentifizierungssystem, erreicht werden, bei dem alle erforderlichen Informationen im Token ohne serverseitige Sitzungsspeicher gespeichert werden. 1) Verwenden Sie JWT, um Token zu generieren und zu überprüfen, 2) Stellen Sie sicher, dass HTTPS verwendet wird, um zu verhindern, dass Token abgefangen werden.

Was sind einige häufige Sicherheitsrisiken mit PHP -Sitzungen verbunden?Was sind einige häufige Sicherheitsrisiken mit PHP -Sitzungen verbunden?Apr 28, 2025 am 12:24 AM

Zu den Sicherheitsrisiken von PHP -Sitzungen gehören hauptsächlich Sitzungshijacking, Sitzungsfixierung, Sitzungsvorhersage und Sitzungsvergiftung. 1. Session -Entführungen können durch Verwendung von HTTPS und Schutz von Cookies verhindert werden. 2. Die Sitzungsfixierung kann vermieden werden, indem die Sitzungs -ID regeneriert wird, bevor sich der Benutzer einmeldet. 4. Die Sitzungsvergiftung kann durch Überprüfung und Filterungsdaten verhindert werden.

Wie zerstören Sie eine PHP -Sitzung?Wie zerstören Sie eine PHP -Sitzung?Apr 28, 2025 am 12:16 AM

Um eine PHP -Sitzung zu zerstören, müssen Sie zuerst die Sitzung starten, dann die Daten löschen und die Sitzungsdatei zerstören. 1. Verwenden Sie Session_Start (), um die Sitzung zu starten. 2. Verwenden Sie Session_unset (), um die Sitzungsdaten zu löschen. 3. Verwenden Sie schließlich Session_destroy (), um die Sitzungsdatei zu zerstören, um die Datensicherheit und die Ressourcenfreigabe zu gewährleisten.

Wie können Sie den Standard -Save -Pfad in PHP ändern?Wie können Sie den Standard -Save -Pfad in PHP ändern?Apr 28, 2025 am 12:12 AM

Wie ändere ich den Standard -Sitzungsweg von PHP? Es kann durch die folgenden Schritte erreicht werden: Verwenden Sie Session_save_path ('/var/www/sessions'); Session_start (); in PHP -Skripten, um den Sitzungsspfad zu setzen. Setzen Sie in der Datei php.ini, um den Sitzungsspfad global zu ändern. Verwenden Sie Memcached oder Redis, um Sitzungsdaten wie ini_set ('Session.Save_handler', 'memcached') zu speichern; ini_set (

Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Wie ändern Sie Daten, die in einer PHP -Sitzung gespeichert sind?Apr 27, 2025 am 12:23 AM

TomodifyDatainaphpSession, startTheSessionwithSession_Start (), dann $ _SessionToSet, modify, orremovevariables.1) startTheSession.2) setOrmodifySessionvariabling $ _Session.3) removeVariables mit ()

Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Geben Sie ein Beispiel für die Speicherung eines Arrays in einer PHP -Sitzung.Apr 27, 2025 am 12:20 AM

Arrays können in PHP -Sitzungen gespeichert werden. 1. Starten Sie die Sitzung und verwenden Sie Session_Start (). 2. Erstellen Sie ein Array und speichern Sie es in $ _Session. 3. Abrufen Sie das Array durch $ _Session ab. 4. Optimieren Sie Sitzungsdaten, um die Leistung zu verbessern.

Wie funktioniert die Müllsammlung für PHP -Sitzungen?Wie funktioniert die Müllsammlung für PHP -Sitzungen?Apr 27, 2025 am 12:19 AM

Die PHP -Sitzungsmüllsammlung wird durch einen Wahrscheinlichkeitsmechanismus ausgelöst, um abgelaufene Sitzungsdaten zu beseitigen. 1) Legen Sie die Auslöserwahrscheinlichkeit und die Sitzungslebenszyklus in der Konfigurationsdatei ein. 2) Sie können Cron-Aufgaben verwenden, um Hochlastanwendungen zu optimieren. 3) Sie müssen die Häufigkeit und Leistung von Müllsammlungen ausgleichen, um Datenverlust zu vermeiden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools