在 linux 下安装并使用 websocket
前言
首先,对websocket要有一个简要的了解与认识
websocket是HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。
它基于TCP传输协议,并复用HTTP的握手通道。
但是如果对于我们来说可以很简单的这样来理解:
1、它可以被用于浏览器
2、它可以实现双向沟通
3、它操作很简单
本次安装使用centos6.8版本系统
一、安装nodejs
先在官网下载最新安装包
英文网址:https://nodejs.org/en/download/
中文网址:http://nodejs.cn/download/
uname -r
2.6.32-696.3.2.el6.x86_64
根据看到的版本信息进行相应的下载
这里选择LTS(长期支持版本)linux (x86/x64)64-bit
下载成功后将tar包上传至服务器中,执行如下命令:
mkdir -p /application 上传至指定目录 tar xf node-v8.11.1-linux-x64.tar.xz rm -rf node-v8.11.1-linux-x64.tar.xz mv node-v8.11.1-linux-x64/ nodejs ln -s /application/nodejs/bin/npm /usr/local/bin/ ln -s /application/nodejs/bin/node /usr/local/bin/
最后执行至此用命令查看版本信息,如果没问题就证明nodejs安装成功
node -v
v8.11.1
二、安装redis
先在官网找到稳定版本进行下载
http://redis.io/download
下载4.0.9稳定版本
将下载下来的tar包上传到远端服务器并执行以下操作
tar xf redis-4.0.9.tar.gz -C /usr/local/ cd /usr/local/ ln -s redis-4.0.6/ redis cd redis make 编译完成后 cd src make install
编译并安装完成即可,这里只需要安装,不需要部署
三、开始安装websocket
用npm安装laravel-echo-server
npm install -g laravel-echo-server
创建一个目录用于存放安装后的文件
[root@uat1 application]# pwd /application [root@uat1 application]# mkdir echo-server
[root@uat1 application]# cd echo-server/
开始安装
/application/nodejs/bin/laravel-echo-server init
接下来你会看到如下信息,我会告诉你怎么选择
? Do you want to run this server in development mode? Yes ? Which port would you like to serve from? 6001 ? Which database would you like to use to store presence channel members? redis ? Enter the host of your Laravel authentication server. http://localhost ? Will you be serving on http or https? http ? Do you want to generate a client ID/Key for HTTP API? Yes ? Do you want to setup cross domain access to the API? Yes ? Specify the URI that may access the API: http://localhost:80 ? Enter the HTTP methods that are allowed for CORS: GET, POST ? Enter the HTTP headers that are allowed for CORS: Origin, Content-Type, X-Auth-Token, X-Requested-W ith, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id
从上到下分别为 运行服务的时候是否在开发模式? 该服务的访问端口? 希望连接的数据库? 私人频道验证的url域名 希望使用http还是htpps来通过浏览器访问该服务现有的频道信息? 是否生成客户端访问该服务API的ID/key? 是否允许跨域访问API? 通过浏览器访问该服务现有的频道信息的URL 允许使用哪些方法跨域访问?(一般是GET和POST) 允许使用哪些头部跨域访问?
按照这些选择后出现如下信息说明安装成功
Configuration file saved. Run laravel-echo-server start to run server.
开始尝试使用websocket
[root@uat1 echo-server]# /application/nodejs/bin/laravel-echo-server start
会出现如下信息:
即证明你的websocket已经安装成功!