nodejs php 通信_php使用elephant.io和nodejs的socket.io1.7.4通信发送消息

手边上有一个nodejs+socket.io搭建的消息通知系统,并且还有一个php的后台系统

需求:在php写的后台给连接到nodejs+socket.io服务器上的所有客户端发送一个消息,

我们知道使用nodejs+socket.io的时候都是在页面中引用一个js然后使用js建立连接发送消息进行一些操作的,现在需要直接用php连接nodejs+socket.io并且发送通知

解决方法

已经有大神写好啦直接拿过来用就可以。

elephant.io 里面已经封装好啦socket0.x  1.x 2.x对应的类安装最新版本就可以    github地址 https://github.com/wisembly/elephant.io

使用composer安装,打开composer.json加入下面包进行安装"require": {

"wisembly/elephant.io": "~3.0"

},

使用方法use ElephantIO\Client;

use ElephantIO\Engine\SocketIO\Version1X;

require __DIR__ . '/vendor/autoload.php';

$client = new Client(new Version1X('http://localhost:4000', [

'headers' => [

'X-My-Header: websocket rocks',

'Authorization: Bearer 12b3c4d5e6f7g8h9i',

],

]));

$client->initialize();

$client->emit('notify', ['foo' => 'bar']);

$client->close();

注意里面使用的版本version1X对就的还有version2X   version0X

如果连接socket.io时需要传参数进行验证可以直接在url后面加参数  http:localhost:4000?yanzheng=adsfasdfsdasdfdasf

服务器取出参数进行相应的验证处理(两个地方都可以取出)io.use(function(socket, next) {

var query = socket.request._query;

var yz = query.yanzheng;

next();

});

第二个地方io.set('authorization', function(handshakeData, accept) {

var query = handshakeData._query;

console.log(query.yanzheng);

//接受连接

accept(null, true);

return;

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值