Bi-directional hosted APIs that are flexible, scalable and easy to use. We create and maintain complex messaging infrastructure so you can build the realtime features your users need, fast.
Bi-directional hosted APIs that are flexible, scalable and easy to use.
Get started today and find out what you can build with Pusher
$pusher->trigger('my-channel', 'my-event', [
'message' => 'hello world'
]);
$pusher->trigger('my-channel', 'my-event', [
'message' => 'hello world'
]);
pusher.trigger('my-channel', 'my-event', {
"message": "hello world"
});
pusher.trigger('my-channel', 'my-event', {
message: 'hello world'
})
pusher.Trigger('my-channel', 'my-event', new {
message = "hello world"
});
pusher.trigger("my-channel", "my-event", Collections.singletonMap("message", "hello world"));
pusher.trigger('my-channel', 'my-event', {
'message': 'hello world'
})
pusher.Trigger("my-channel", "my-event", map[string]string{
"message": "hello world",
})
var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function(data) {
alert('Received my-event with message: ' + data.message);
});
var channel = pusher.subscribe('my-channel');
channel.bind('my-event', function(data) {
alert('Received my-event with message: ' + data.message);
});
Channel channel = pusher.subscribe("my-channel");
channel.bind("my-event", new SubscriptionEventListener() {
@Override
public void onEvent(String channel, String event, String data) {
System.put.println("Received event with data: " + data);
}
});
let channel = pusher.subscribe("my-channel")
channel.bind(eventName: "my-event", callback: { (optionalData: Any?) -> Void in
if let data = optionalData {
print("Received event with data: \(data)")
}
})
PusherChannel *channel = [pusher subscribeWithChannelName:@"my-channel"];
[channel bindWithEventName:@"my-event" callback:^void (NSDictionary *data) {
NSString *message = data[@"message"];
NSLog(@"message received: %@", message);
}];
const beamsClient = new PushNotifications({
instanceId: 'YOUR_INSTANCE_ID_HERE',
secretKey: 'YOUR_SECRET_KEY_HERE'
});
beamsClient.publishToInterests(['hello'], {
apns: {
aps: {
alert: 'Hello!'
}
},
fcm: {
notification: {
title: 'Hello',
body: 'Hello, world!'
}
}
}).then((publishResponse) => {
console.log('Just published:', publishResponse.publishId);
}).catch((error) => {
console.error('Error:', error);
});
const beamsClient = new PushNotifications({
instanceId: 'YOUR_INSTANCE_ID_HERE',
secretKey: 'YOUR_SECRET_KEY_HERE'
});
beamsClient.publishToInterests(['hello'], {
apns: {
aps: {
alert: 'Hello!'
}
},
fcm: {
notification: {
title: 'Hello',
body: 'Hello, world!'
}
}
}).then((publishResponse) => {
console.log('Just published:', publishResponse.publishId);
}).catch((error) => {
console.error('Error:', error);
});
const (
instanceId = "YOUR_INSTANCE_ID_HERE"
secretKey = "YOUR_SECRET_KEY_HERE"
)
beamsClient := pushnotifications.New(instanceId, secretKey)
publishRequest := map[string]interface{}{
"apns": map[string]interface{}{
"aps": map[string]interface{}{
"alert": map[string]interface{}{
"title": "Hello",
"body": "Hello, world",
},
},
},
"fcm": map[string]interface{}{
"notification": map[string]interface{}{
"title": "Hello",
"body": "Hello, world",
},
},
}
pubId, err := beamsClient.PublishToInterests([]string{"hello"}, publishRequest)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("Publish Id:", pubId)
}
beams_client = PushNotifications(
instance_id='YOUR_INSTANCE_ID_HERE',
secret_key='YOUR_SECRET_KEY_HERE',
)
response = beams_client.publish_to_interests(
interests=['hello'],
publish_body={
'apns': {
'aps': {
'alert': 'Hello!',
},
},
'fcm': {
'notification': {
'title': 'Hello',
'body': 'Hello, world!',
},
},
},
)
print(response['publishId'])
String instanceId = "YOUR_INSTANCE_ID_HERE";
String secretKey = "YOUR_SECRET_KEY_HERE";
PushNotifications beamsClient = new PushNotifications(instanceId, secretKey);
List<String> interests = Arrays.asList("donuts", "pizza");
Map<String, Map> publishRequest = new HashMap();
Map<String, String> alert = new HashMap();
alert.put("alert", "hi");
Map<String, Map> aps = new HashMap();
aps.put("aps", alert);
publishRequest.put("apns", aps);
Map<String, String> fcmNotification = new HashMap();
fcmNotification.put("title", "hello");
fcmNotification.put("body", "Hello world");
Map<String, Map> fcm = new HashMap();
fcm.put("notification", fcmNotification);
publishRequest.put("fcm", fcm);
beamsClient.publishToInterests(interests, publishRequest);
val instanceId = "YOUR_INSTANCE_ID_HERE"
val secretKey = "YOUR_SECRET_KEY_HERE"
val beamsClient = PushNotifications(instanceId, secretKey)
val interests = listOf("donuts", "pizza")
val publishRequest = hashMapOf(
"apns" to hashMapOf("aps" to hashMapOf("alert" to "hi")),
"fcm" to hashMapOf("notification" to hashMapOf("title" to "hello", "body" to "Hello world"))
)
beamsClient.publishToInterests(interests, publishRequest)
Pusher::PushNotifications.configure do |config|
config.instance_id = 'YOUR_INSTANCE_ID_HERE'
config.secret_key = 'YOUR_SECRET_KEY_HERE'
end
data = {
apns: {
aps: {
alert: {
title: 'Hello',
body: 'Hello, world!'
}
}
},
fcm: {
notification: {
title: 'Hello',
body: 'Hello, world!'
}
}
}
Pusher::PushNotifications.publishToInterests(interests: ['hello'], payload: data)
From dashboards to stock charts, update data instantly
Critical transactional information, delivered every time
From food delivery to order status, realtime updates at scale
Bring delightful conversational experiences to all your users
“We deal with student data, which comes with serious privacy requirements. We wouldn’t be able to do what we do without Pusher.”
Nick Tyler
Director of Engineering, GoGuardian
“In our time working together, Pusher has been one of our most reliable technology partners in that we haven't experienced any issues or downtime. The service has been flawless, and their team is super knowledgeable and has been great to work with.”
Connor Thielmann
VP of Business Operations, ServiceTitan
“The developer experience for us was fantastic. When we’re working with Pusher not only do we have the trusted infrastructure partnership, we also have all of the documentation, the snippets, the client side library which has fallbacks and stuff. It makes life a lot easier.”
Jeremy Bowers
Director of Engineering, The Washington Post
“We struggled with a lot of our infrastructure to handle a sudden spike in load. We’ve had to engineer a lot of complexity there to solve that. We haven’t had to do that with Pusher.”
Peter Hamilton
Head of Technology, Remind