是否有任何开源替代Pusher.com?我喜欢易用性和闪回的后备,但我被月度会员费用拖延了.我不介意托管我自己的开源替代品.任何帮助将不胜感激.
我正在使用Pusher API在Laravel 5.4中使用JQuery发送通知.我发现每当我从Firefox或Safari发送通知时它都会成功到达Chrome浏览器,但反之则不然.另一个问题是,当我发送消息时,它正被我接收!虽然我用过toOthers()
方法
我的代码如下.如果您需要更多信息,请告诉我.
控制器代码
broadcast(new SendMessageEvent("hi", \Auth::user()))->toOthers();
Run Code Online (Sandbox Code Playgroud)
刀
$(function() {
Pusher.logToConsole = true;
var pusher = new Pusher('Pusher API key', {
authEndpoint: 'broadcasting/auth',
auth: {headers: {'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')}}
});
var channel = pusher.subscribe('private-user-channel.{!! \Auth::user()->UserID !!}');
channel.bind('App\\Events\\SendMessageEvent', function(data) {
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
事件
class SendMessageEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $msg;
public $user;
public $userid;
public function __construct($msg, $user) {
$this->msg = $msg;
$this->user = $user;
$this->userid = $this->user->UserID;
}
public function broadcastOn()
{
return new …
Run Code Online (Sandbox Code Playgroud) 我最近在浏览我的Laravel聊天练习应用程序时,一直在阅读像Pusher和Socket.io这样的websockets和SaaS.我不明白的是,为什么我们需要外部软件来建立websocket连接?像Laravel这样的服务器代码不能像Vue.js那样直接建立与前端的连接吗?为什么要像Pusher和Socket.io那样经历中间人?抱歉,这个菜鸟问题.
我想让我的应用程序应用程序连接到私人频道上的推送器.
但是我收到以下错误:
pusher.js?b3eb:593 POST http:// localhost:8000/broadcasting/auth 404(Not Found)
可能是错误的原因以及如何解决它.
我正在使用Yii
框架并OpenTok
API
与之集成PUSHER API
.当我厌倦了创建PUSHER
事件实例时,就建立了连接.但几秒钟后,连接自动关闭,并给出错误,例如:Pusher:Error:{"type":"WebSocketError","error":{}}.我正在尝试推送库版本1.11.2和1.12(但同时)进行测试.
控制台日志:
Pusher : State changed : initialized -> connecting
Firefox can't establish a connection to the server at ws://ws.pusherapp.com/app/?protocol=5&client=js&version=1.1....
Pusher : State changed : connecting -> connected
Pusher : State changed : connecting -> disconnected
Run Code Online (Sandbox Code Playgroud)
我已经检查了telnet ws.pusherapp.com 443,80和843,但我得到的是Connection被外国主机关闭.
是否有任何方法或东西我缺乏调试或测试?需要一些帮助来避免这种警告.
我用过
chrome版本23.0.1271.97
Ubuntu 12.04
Firefox 18.0
我有兴趣开发一款多人游戏,Pharo Smalltalk作为服务器后端,以及用于Web客户端前端的琥珀色smalltalk + html5游戏库.
Pharo smalltalk有websocket支持,我已经尝试用它制作游戏.它工作正常,但我宁愿使用其中一种推送服务,以便我可以轻松扩展到许多用户.
我需要的是(我认为)是一个websocket接口(从我的后端服务器)到其中一个推送服务.我会使用firebase REST api,但似乎有点奇怪,我不得不恢复到从我的服务器到firebase服务器不断轮询,而不是简单地通过websocket订阅他们的服务并获得更新而不进行轮询.
我注意到其中许多服务都有socket.io实现,因此您可以通过socket.io将后端服务器连接到它们.不幸的是,pharo smalltalk没有实现socket.io,也没有办法使用我所知道的.
如果我找不到解决方案继续在服务器后端使用其中一个推送服务使用pharo smalltalk,我将研究另一种可能性,即负载平衡我的pharo smalltalk图像和后端服务器.
我一直在尝试在我的应用程序中使用 Pusher。在创建 后,我开始收到此错误PusherFactory
,如屏幕截图所示。但是,我一直收到错误undefined type Pusher\Pusher
。所以我尝试使用以下命令运行 install Pusher:composer require pusher\pusher-php-server
。
毕竟,当我尝试运行时npm install && npm run dev
,我现在收到此错误:
> dev
> vite
sh: 1: vite: Permission denied
patrick@patrick-nthiwa:~/Music/primecrm/prime$ sudo npm run dev
[sudo] password for patrick:
*
sh: 1: vite: Permission denied*
Run Code Online (Sandbox Code Playgroud) 背景
我正在尝试将视频集成到幻灯片演示应用程序中.我已禁用学生端的控件,并且有一个播放/暂停按钮连接到YouTube API,以便在单击时通过推送器触发事件,并且视频将在教师屏幕和学生屏幕上启动.
难点
当其中一个用户的互联网连接速度较慢时,就会出现问题.如果教师的互联网速度比学生快,那么视频将不同步.
我的方法
我有一个功能,它使用YouTube API来控制视频的播放和暂停.
/**
*
*/
togglePlay: function(){
var videoId = this.videoId;
if (this.isPlaying) {
this.players[videoId].pauseVideo(); // Pauses the video
this.isPlaying = false;
} else {
this.players[videoId].playVideo(); // Starts the video
this.isPlaying = true;
}
},
Run Code Online (Sandbox Code Playgroud)
在视频对象内部,我添加了一个onStateChange
事件监听器,在视频播放/暂停/缓冲时触发.该事件将发送到此功能.
/**
*
*/
emittStateChange: function(e){
switch(e.data) {
// if the teachers video is...
case 1: // playing
pusher.channel4.trigger('client-youtube-triggered', {
videoId: youtube.videoId,
status: 1, // start the students video
});
break;
case 2: // paused
pusher.channel4.trigger('client-youtube-triggered', { …
Run Code Online (Sandbox Code Playgroud) 我使用的是 Laravel 5.8,我们在我们的应用程序中使用了带有 PUSHER 的网络套接字。它在本地或当我处于 HTTP 模式时完美地广播。当我将设置更新为 HTTPS 时,广播不再有效。
Any hints on this ? anyone ?
Run Code Online (Sandbox Code Playgroud)
我试过了
#客户端
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
wsHost: window.location.hostname,
encrypted: false,
// wsPort: 6001,
// wssPort: 6001,
disableStats: true,
forceTLS: true,
enabledTransports: ['ws', 'wss']
});
Run Code Online (Sandbox Code Playgroud)
和
#服务器端
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'scheme' => 'http',
'useTLS' => true,
'debug' => true,
'curl_options' => …
Run Code Online (Sandbox Code Playgroud) I want to use pusher for realtime chat and it works properly with public channel but when I use private channel I got this error :
pusher.js:1333 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://20.30.0.236:8000/login with MIME type text/html
Run Code Online (Sandbox Code Playgroud)
this is laravel code :
Event :
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* Create a new event instance.
*
* @return void
*/
public $user;
public $message;
public function __construct(User $user, Message $message)
{
$this->user = $user;
$this->message = $message;
} …
Run Code Online (Sandbox Code Playgroud) pusher ×10
laravel ×6
websocket ×6
javascript ×2
laravel-5.3 ×2
socket.io ×2
jquery ×1
laravel-5.4 ×1
laravel-echo ×1
open-source ×1
pharo ×1
php ×1
phpwebsocket ×1
pusher-js ×1
reactjs ×1
smalltalk ×1
vue.js ×1
vuejs2 ×1
web-services ×1
youtube-api ×1