手机云川网

JAVA Web实时消息后台服务器推送技术---GoEasy

实时消息推送与接收在各类项目中的需求日益增长。有什么办法能轻松搞定实时推送呢?答案就是GoEasy,一款超实用的第三方推送服务平台。

强大的浏览器兼容性

GoEasy在浏览器兼容方面表现出色。它支持websocket和polling两种连接方式,这意味着它能支持IE6及其以上的所有版本。无论是在老旧的办公电脑上使用IE浏览器,还是在主流的Firefox、Chrome、Safari等浏览器上,GoEasy都能稳定运行,为不同用户提供一致的实时推送体验。

这种广泛的兼容性,让开发者无需担心用户使用的浏览器类型,大大降低了开发的难度和成本。

支持多开发语言

对于开发者来说,不同的项目可能会使用不同的后台开发语言。GoEasy提供了Restful API接口,无论后台程序用的是Java、Python还是其他语言,都可以通过Restful API来实现后台实时推送。

这就好比为开发者提供了一把万能钥匙,无论遇到什么类型的锁,都能轻松打开。开发者可以根据项目需求,自由选择合适的开发语言,而不用担心实时推送的问题。

前后台推送均支持

GoEasy支持后台及前台推送。后台使用Restful API,前台使用goeasy.js,运用起来十分简单。在后台,开发者可以通过调用Restful API,轻松实现消息的推送。而在前台,引入goeasy.js后,就能方便地进行消息的订阅和接收。

这种前后台分离的设计,让开发者可以根据不同的需求,分别对前后台进行优化,提高开发效率。

使用GoEasy的步骤

使用GoEasy的第一步,需要到goeasy官网上注册一个账号,并创建一个应用。应用创建好后,系统会默认为它生成两个key:publish key和subscribe key。这两个key就像是打开实时推送大门的钥匙,非常重要。

前台实时订阅及接收也很简单,只需要引入goeasy.js,然后调用goeasy的subscribe方法订阅一个channel即可。订阅时,无论是用publish key还是subscribe key都可以。通过subscribe的参数onMessage的回调函数,还能实时接收到消息。

前台实时推送操作

前台实时推送同样便捷。如果该页面已经引入了goeasy.js,就无需再次引入。然后调用goeasy的publish方法,向已订阅的channel上推送消息即可。不过要注意,推送时只能用publish key。

这样的操作方式,让开发者可以在前台轻松实现消息的推送,为用户提供及时的信息。

推送原理清晰明了

GoEasy的实现原理很简单,推送消息的一端只负责推送,而需要接收的页面需要预先订阅。开发者可以订阅channel,往某个channel上推送消息,客户端就订阅相同的channel,这样就能确保准确接收。



GoEasy Test
<script type="text/javascript" src="https://cdn.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
  if(typeof GoEasy !== 'undefined'){
    var goEasy = new GoEasy({
      appkey: 'ba821151-e043-4dfb-a954-c73744c8d323',
      userId:"222",
      username:"22",
      onConnected:function(){
        console.log("Connect to GoEasy success.");
      } ,
      onDisconnected:function(){
        console.log("Disconnect to GoEasy server.");
      } ,
      onConnectFailed:function(error){
        console.log("Connect to GoEasy failed, error code: "+ error.code+" Error message: "+ error.content);
      }
    });
  }
      
  subscribe();
  function subscribe(){
       goEasy.subscribe({
        channel: 'notification',
        onMessage: function(message){
          console.log('Meessage received:'+message.content);
        },
        onSuccess:function(){
          console.log("Subscribe the Channel successfully.");
        },
        onFailed: function(error){
          console.log("Subscribe the Channel failed, error code: "+ error.code + " error message: "+ error.content);
        }
      });
  }
      
   function publishMessage(){
     goEasy.publish({
        channel: 'notification',
        message: 'You received a new notification',
        onSuccess:function(){
          console.log("Publish message success.");
        },
        onFailed: function(error){
          console.log("Publish message failed, error code: "+ error.code +" Error message: "+ error.content);
        }
      });
   
   }
         
   function unsubscribe(){
        goEasy.unsubscribe({
          channel:"notification",
          onSuccess: function(){
            console.log("Cancel Subscription successfully.");
          },
          onFailed: function(error){
            console.log("Cancel the subscrition failed, error code: "+ error.code + "error message: "+ error.content);
          }
        });
      }
    
 </script>

<body>
 
 
 


通过channel,开发者还可以自己指定哪些页面或哪些用户可以接收到从这个channel上推送出来的消息,实现精准推送。

你在使用实时消息推送服务时,遇到过什么问题吗?欢迎在评论区留言分享,也别忘了点赞和分享本文哦!

未经允许不得转载:手机云川网 » JAVA Web实时消息后台服务器推送技术---GoEasy