最近搞了搞websocket 做了个简答的聊天demo

1.      从GoEasy获取appkey

appkey是验证用户的有效性的唯一标识。

Ø  注册账号。 GoEasy官网:https://goeasy.io

Ø  用注册好的账号登录到GoEasy的后台管理系统,创建您自己应用(application).

Ø  Application创建好之后系统会自动为您生成appkey

系统会生成两个keys,一个Super key和一个Subscribe key;它们的区别在于前者既可以订阅又可以推送,但后者只能用于订阅。

2.      GoEasy实现向特定用户群推送的原理

知道了他们的推送原理,可以更加方便我们了解他们的服务,以及理解我们写的代码。其实原理很简单,只需要确定哪些用户需要接收信息,然后让这些用户都订阅一个相同的channel(频道)。然后再往这个平台上推送消息即可!所有关键在于channel,channel一致,则可以接收到信息,否则收不到!

对于订阅必须要的信息有:Appkey, channel

对于推送必须要的信息有:Appkey, channel, content

3.      用GoEasy实现订阅(接收)的实例

实现步骤:

1.      引入goeasy.js

2.      创建goeasy实例/对象

3.      用subscribe 函数进行订阅,然后在回调函数里接收信息即可

<script type="text/javascript"src="https://cdn.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
            var goEasy = new GoEasy({appkey: 'your appkey'});
                               goEasy.subscribe({
                        channel: 'your_channel',
                        onMessage: function(message){
                            alert('接收到消息:'+message.content);//拿到了信息之后,你可以做你任何想做的事
                        }
              });

</script>

有了这几行代码后,只要保证网络畅通的情况下,页面会自动弹出你从任何平台上推送的信息。

4.      用GoEasy实现推送及接收的实例

目前GoEasy支持三种推送方式:Java后台推送(它们有提供JAVA SDK和 maven远程仓库), JS推送,RestAPI推送(有了RestAPI,我们就可以用PHP, .NET, Ruby…来推送信息了,很方便)

说了这么多,上代码,

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">

/*这里引入就不说了*/
<script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script>
<script type="text/javascript">
var goEasy = new GoEasy({
appkey: 'BC-2a8038ce95db44a4b566c434f73b57f8'
});

//按回车键发送消息
document.onkeydown=function(event){
var e = event || window.event ;
if(e && e.keyCode==13){ // enter 键
if(document.getElementById("txt").value != ''){
pub();
}
}
};

//消息发送
function pub (){

//获取值不说了
var vues = document.getElementById("txt").value

//内容追加
var s = "<p class='pa'> "+vues+":——my</p>";
document.getElementById("con").innerHTML += s

//z重点来了 这里是消息推送

goEasy.publish({

//标识 也可以说是自己的唯一标识
channel: 'bianchao2',

//消息内容
message: vues
});

//发送完清空文本框
document.getElementById("txt").value=''

//聊天框滚动条自动滚到底部显示最新信息
document.getElementById("con").scrollTop =document.getElementById("con").scrollHeight
}

//接收信息
goEasy.subscribe({

//对方的标识
channel: 'bianchao',
onMessage: function(message){
//alert('收到:'+message.content);
var s = "<p class='pb'> 他——:"+message.content+"</p>";

//同理 追加内容 
document.getElementById("con").innerHTML += s

//聊天框滚动条自动滚到底部显示最新信息
document.getElementById("con").scrollTop =document.getElementById("con").scrollHeight
}

});

//GoEasy-OTP可以对appkey进行有效保护,详情请参考:GoEasy-Reference

</script>
<style type="text/css">
#con{
width: 15rem;
height: 30rem;
border: 1px solid #000;
overflow-y:scroll;
}
.pa{
width: 100%;

color:red;
text-align: right;

}
.pb{
width: 100%;

color:green;
text-align: left;

}
</style>
</head>
<body>
<div id="con">

</div>
<input type="text" id="txt" >
<button onclick="pub();">推送</button>
<table>
<tr>
<td>

</td>
</tr></table>
</body>
</html>

至此 一个简单的基于goeasy的 websocket 聊天室 就实现了 有不好的地方 欢迎指教

大家也可以自己完善一些功能。

如何使用GoEasy实现PHP与Websocket实时通信的更多相关文章

  1. Python基于websocket实时通信的实现—GoEasy

    Python websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个 ...

  2. PHP基于websocket实时通信的实现—GoEasy

    PHP websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号, ...

  3. C(++)基于websocket实时通信的实现—GoEasy

    c(++) websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账 ...

  4. node.js Websocket消息推送---GoEasy

    Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...

  5. C(++) Websocket消息推送---GoEasy

    Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送 速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送 支持websocket ...

  6. 【Node/JavaScript】论一个低配版Web实时通信库是如何实现的( WebSocket篇)

    引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了Web ...

  7. Uniapp使用GoEasy实现websocket实时通讯

    Uniapp作为近来最火的移动端开发技术,一套代码,可以打包成Android/iOS app和各种平台的小程序,可谓是没有最方便只有更方便. GoEasy上架DCloud Uniapp插件市场已经有一 ...

  8. 微信小程序使用GoEasy实现websocket实时通讯

    不需要下载安装,便可以在微信好友.微信群之间快速的转发,用户只需要扫码或者在微信里点击,就可以立即运行,有着近似APP的用户体验,使得微信小程序成为全民热爱的好东西~ 同时因为微信小程序使用的是Jav ...

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

    越来越多的项目需要用到实时消息的推送与接收,怎样用php实现最方便呢?我这里推荐大家使用GoEasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送! 浏览器兼容性:GoEasy推送 ...

随机推荐

  1. spark 机器学习 朴素贝叶斯 原理(一)

    朴素贝叶斯算法仍然是流行的挖掘算法之一,该算法是有监督的学习算法,解决的是分类问题,如客户是否流失.是否值得投资.信用等级评定等多分类问题.该算法的优点在于简单易懂.学习效率高.在某些领域的分类问题中 ...

  2. noip 2012 Day2 T2 借教室

    一.暴力简述 甩链接.jpeg 首先我们不难看出,这道题————并不是一道多难的题,因为显然,第一眼看题目时便很容易地想到暴力如何打:枚举每一种订单,然后针对每一种订单,对区间内的每一天进行修改(做减 ...

  3. 详解基于linux环境MySQL搭建与卸载

    本篇文章将从实际操作的层面,讲解基于linux环境的mysql的搭建和卸载. 1  搭建mysql 1.1  官网下载mysql压缩包 下载压缩包时,可以先把安装包下载到本地,再上传到服务器,也可以在 ...

  4. 回文树1960. Palindromes and Super Abilities

    Bryce1010模板 http://acm.timus.ru/problem.aspx?space=1&num=1960 #include <bits/stdc++.h> usi ...

  5. 洛谷 P2023 [AHOI2009]维护序列 || 线段树加法和乘法运算

    原理倒是非常简单.设原数为x,加法的lazytag为b,乘法的lazytag为a,操作数为c,那么原式为ax+b,乘上c后(ax+b)c=(ac)*x+b*c,加上c后(ax+b)+c=ax+(b+c ...

  6. Codeforces Round #323 (Div. 2)

    被进爷坑了,第二天的比赛改到了12点 水 A - Asphalting Roads /************************************************ * Author ...

  7. 491 Increasing Subsequences 递增子序列

    给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2.示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, ...

  8. PHP 讓 json_encode() 指定回傳格式

    PHP 回傳 JSON 很方便, 只要將資料經過 json_encode() 就解決了. 不過因為 PHP 自動轉換型別, 造成很多資料都習慣存成字串, 希望在輸出 JSON 的時候, 數字部份可以輸 ...

  9. 初学.net增删改查

    分页显示 DAL: public List GetListByPager(int PageIndex, int PageSize, out int RowCount) { string sql = & ...

  10. laravel oauth2.0 文件上传报错

    报错信息:   "message": "Invalid stream or file provided for UploadedFile",    " ...