草庐IT

webSocket

全部标签

node.js - 在 Heroku 上使用 Laravel + Redis + Node.js for websocket app ...担心连接限制

这有点牵强,但我希望有人能提供帮助。我是一名PHP/iOS开发人员,一直在开发一款具有消息传递组件的应用程序。前端是Obj-C,后端目前是PHP/MySQL。随着我深入开发,我感受到了轮询的缺点,我一直在寻找更实时的解决方案,果然,我在网络套接字中找到了答案。PHP在这个领域表现不佳,但我已经能够通过使用Laravel+Redis+Node.js让事情在本地工作。接下来我需要为现实世界的应用程序部署找到一个合适的主机,这是我遇到的第一个主要障碍(或感知障碍?)Heroku似乎对允许的Redis连接数量有非常低的限制:链接:https://elements.heroku.com/addo

javascript - socket.io,使用 PHP session 作为带有 redis 的 socket.id

我正在开发一个基于文本的在线Angular色扮演游戏(Github);目前我有一个PHP后端,它在redis服务器中存储session数据。对于需要实时通信的所有内容(聊天、消息传递和已连接用户列表),我使用Node.js和socket.io作为websockets。目前我的websocket服务器上有3个命名空间:消息服务器在线服务器聊天服务器我已经成功了,但恐怕大部分都是“黑客”造成的。现在我无法向特定客户发送消息。例如,如果我正在给另一个用户写一条私有(private)消息,当我点击“发送”时,我需要以下逻辑。用户正在写他的消息,当他点击“发送”时,客户端向websocket服务

Websocket获取B站直播间弹幕教程 — 哔哩哔哩直播开放平台

一、首先、获取直播开放平台秘钥进入哔哩哔哩直播开放平台:https://open-live.bilibili.com/注册申请个人开发者认证,获得access_key_id和access_key_secred进入bilibili创作者服务中心->创建项目->获得项目ID(app_id)官方文档:https://open-live.bilibili.com/document/eba8e2e1-847d-e908-2e5c-7a1ec7d9266f二、开启/关闭你项目时需要发送的请求注意:Post参数需要签名加密,并且设置到请求头;设置完后才能成功获得/app/start的响应,获得直接间弹幕服务

Golang WebSocket 创建单独会话

引言在互联网应用程序中,实时通信是一种非常重要的功能。WebSocket是一种基于TCP的协议,它允许客户端和服务器之间进行双向通信。Golang是一种高性能的编程语言,它提供了对WebSocket的原生支持,使得在Golang中创建WebSocket会话变得非常简单。本文将介绍如何使用Golang创建单独的WebSocket会话,以实现实时通信功能。WebSocket简介WebSocket是一种在单个TCP连接上进行全双工通信的协议。它与传统的HTTP协议不同,HTTP是一种无状态的协议,每个请求都需要建立一个新的连接。而WebSocket在客户端和服务器之间建立一条持久的连接,可以实现实时

node.js - 使用 Redis 的 Heroku Node.js 应用程序上的 WebSocket 和多个 Dyno

我正在构建一个部署到Heroku的应用程序,它使用WebSocket和Redis。当我只使用1个dyno时,WebSocket连接工作正常,但是当我扩展到2个时,我发送事件我的应用程序执行两次。constws=require('ws')constjwt=require('jsonwebtoken')constredis=require('redis')constUser=require('../models/user')functionverifyClient(info,callback){lettoken=info.req.headers['sec-websocket-protoco

laravel - 使用 Laravel Echo、laravel-echo-server 和 socket.io 进行广播不起作用

我已经通过自己的实现成功地使用Laravel设置了websockets。但是,经过数小时的尝试和阅读我能找到的每一篇文档后,我确实需要进一步的帮助。"laravel-echo":"^1.5.2","socket.io-client":"^2.2.0",这是我的.env文件详细信息BROADCAST_DRIVER=redisCACHE_DRIVER=fileQUEUE_CONNECTION=redisSESSION_DRIVER=fileSESSION_LIFETIME=120laravel-echo-server.json"database":"redis","databaseConf

node.js - IORedis 或 (node_redis) 回调在调用自定义 Redis 命令/模块后未触发

在nodejs应用程序的websocket消息事件中使用redis客户端(ioredis或node_redis)时,不会立即触发任何命令的回调。(虽然操作确实发生在redis服务器上)奇怪的是,第一个命令的回调会在我发送第二条消息后触发,而第二个命令的回调会在我发送第三条消息后触发。wss.on('connection',(socket,request)=>{socket.on('message',(data)=>{console.log("willsendtestcommand")this.pubClient.hset("test10","f1","v1",(err,value)=>

python - 无法在 websockets 事件的事件处理程序中修改 session 的值

我正在构建一个基于flask和pyhon的小应用程序,我的主要功能是基于websockets。我发现我无法在websockets事件的事件处理程序中修改session的值(我正在使用flask-socketio),因为flask将其session存储在客户端。因此,根据扩展作者的建议,我安装了flask-kvsession以将session存储在服务器端的基于redis的后端中。我遵循了提供的说明http://pythonhosted.org/Flask-KVSession/,但问题依然存在。所以我创建了一个小程序来向您展示我在说什么。#main.pyfromflaskimportFl

javascript - 同步多个 Socket.io 客户端

我正在构建一个应用程序,它在前端使用Angular.js,在后端使用Express上的Socket.IO和Redis。套接字的基本用法是允许一种类型的用户将项目推送到由第二种类型的用户组使用的列表。一个简单的例子:学生可以将消息推送到类(class)列表中,只有本类的老师可以看到该列表。我正在尝试在不同时间连接的多位教师之间同步列表,列表存储在Redis存储中,我想知道同步客户端的正确方法是否:一个。在每次更新时发送列表-省去了必须在客户端中管理同步和潜在的不匹配的需要。B.仅在连接时发送列表并对连续事件应用增量更新。我确信这在过去已经得到解决,因为它似乎是套接字通信的一个非常基本的问

python - 使用 redis sub\pub 的 Tornado 套接字

我需要有关将网络套接字与Redis发布/订阅channel结合使用的性能方面的建议。我使用tornado作为网络服务器。我有大约100个客户端在监听某个事件的状态。每个客户端都有单独的事件,只需要监听自己的事件。套接字连接是短暂的,大约1-20秒。我看到两个选项:在redis中为每个套接字事件对创建单独的发布/订阅channel。在这种情况下,我会有很多channel。创建一个发布/订阅channel,订阅所有客户端并在Controller中过滤消息以将它们转发到合适的客户端。在这种情况下,我有很多客户收听一个channel。以下哪个选项对性能更好? 最佳答