基于socket.io和node.js搭建即时通信系统

2020-06-17 06:21:23易采站长站整理

使用socket.io和nodejs搭建websocket服务器端

socket.io不仅可以搭建客户端的websocket服务,而且支持nodejs服务器端的websocket。

下面让我来介绍一下怎么安装配置nodejs.

进入http://nodejs.org/#download下载msi文件。一直点next安装。最后文件会自动安装在C:nodejs目录下。

安装完成后,会自动配置环境环境变量。如果没有自动配置,自己手动在path处加上 ;C:nodejs。

安装完成后,需要配置npm来管理node.js的模块。

在window下安装npm需要安装git。

安装完git后,打开gitbush。执行下面几步:


git config --system http.sslcainfo /bin/curl-ca-bundle.crt

git clone --recursive git://github.com/isaacs/npm.git

cd npm

node cli.js install npm -gf

第一个是设置不会有任何提示,第二步会到github上下载npm会有下载文件和进度,第四步是安装npm到node.js会复制几个文件cmd文件和mode_modules文件夹到nodejs目录。

这样就配置好了npm。

如果需要安装什么模块直接输入npm install ***。

没有npm的或者windows用户可以使用github下载socket.io并且放入到node_modules文件夹中,具体配置可以参考文章:《nodejs教程:配置nodejs.exe的windows目录结构》

nodejs安装socket.io

使用node插件管理包,运行下面的命令就可以安装成功socket.io


npm install socket.io

用socket.io 实现的一个例子

客户端代码:


<html>

<head>

<title></title>

<script src="../js/socket.io.client.js"></script>

<script type="text/javascript">

function doit() {

var socket = io.connect('http://localhost');

socket.on('news', function (data) {//接收到服务器发送过来的名为'new'的数据

console.log(data.hello);//data为应服务器发送过来的数据。

socket.emit('my new event', { my:'new data' });//向服务器发送数据,实现双向数据传输

});

socket.on('other', function (data) {//接收另一个名为'other'数据,

console.log(data.hello);

socket.emit('event1', { my:'other data' });

});

}

</script>

</head>

<body>

<button id='btn' onclick="doit()">click me</button>

</body>

</html>

socket.io.client.js可以https://github.com/LearnBoost/socket.io-client下载到本地,在<script src=”..”>指向本机的js库。

服务器用nodejs实现

server2.js


var http= require('http'), io= require('socket.io'), express= require('express');