Please enable JavaScript.
Coggle requires JavaScript to display documents.
Socket.io和Redis写Realtime App (2.创建文件夹chat-app,cmd打开到文件夹路径 (C.创建 index,js…
Socket.io和Redis写Realtime App
1.安装node.js(官网下载)
cmd :node -v (显示版本则安装成功)
2.创建文件夹chat-app,cmd打开到文件夹路径
B.安装 express
npm install --save express
A.创建文件 package,json (依赖包)
C.创建 index,js 文件(可理解为单入口文件,如laravel中的public里的index.php)
a. 引入express !
var app = require('express')();
b. 引入http模块,用来处理http请求,执行 Server()方法
var http = require('http').Server(app);
c. 声明路由
c1.app.get('/',function (resquest,response) { //向客户端发送数据 response.send('Heool World');}
c2.app.get('/',function (resquest,response) { //向客户端发送数据 //response.send('Heool World'); //实际开发中不是返回字符串,而是html静态文件,所以用senFile() response.sendFile(__dirname+'/index.html');}
d.监听接口
http.listen(3000,function(){ console.log('Server start'); });
D.打开node服务器
node index.js (退出 ctrl+c)
E.创建index.html,并执行c2代码
index.js为服务端,index.html为客户端
F.下载socket.io(应用于服务端socket)
npm install --save socket.io
G.服务端的socket
Bootstrap找js链接(www.bootcdn.cn)
3.简单实现Socket
A.index.js(服务端)
a.创建socket监听
//6.引用socket.io,监听http var io = require('socket.io')(http);
b.监听用户连接事件
//7.传递需要监听的事件io.on('connection',function (socket) {console.log('a user connect');});
B.index.html(客户端)
a.实现连接
//8.实现连接 var socket = io();
b.添加表单
//9.监听submit事件 $('form').submit(function(){ socket.emit('chat.message',$('#message').val()); $('#message').val(''); //清空表单return false;});
C.index.js(服务端)
a.监听,接受表单内容
//7.传递需要监听的事件io.on('connection',function (socket) {//10.监听频道以及其数据socket.on('chat.message',function (message) {//11.将数据广播(分发)给用户io.emit('chat.message',message);}) });
D.index.html(客户端)
a.监听 服务器端的频道 广播的数据
socket.on('chat.message',function (message) {$('#messages').append($('<li>').text(message));});
<ul id="messages"></ul>
4.redis和laravel
A.配置好redis
B.创建laravel文件
1.composer create-project laravel/laravel redis-lesson --prefer-dist
2.引入predis包
composer require predis/predis
3.在laravel中使用redis
1.1 在路由中导入redis文件
use Illuminate\Support\Facades\Redis;
1.2 路由中使用redis
Redis::set('name','Bool');
return Redis::get('name');
1.3使用 发布/订阅 功能
发布:Redis::publish('test-channel',json_encode($data));
订阅: 创建socket.js,实现subscribe(订阅)
安装node的依赖文件
npm install socket.io ioredis --save
注意:redis设置了密码,所以ioredis也需要设置密码(node_modele/ioredis/lib/redis.js)里面的password
在静态页中实现监听
1.4Laravel的Event和broadcasting