Home >Web Front-end >JS Tutorial >Build an instant messaging system based on socket.io and node.js_node.js
Build a websocket server using socket.io and nodejs
socket.io can not only build client-side websocket services, but also supports nodejs server-side websockets.
Let me introduce how to install and configure nodejs.
Go to http://nodejs.org/#download to download the msi file. Keep clicking next to install. The final file will be automatically installed in the C:nodejs directory.
After the installation is completed, the environment variables will be automatically configured. If there is no automatic configuration, manually add ;C:nodejs to the path.
After the installation is complete, npm needs to be configured to manage node.js modules.
Installing npm under window requires installing git.
After installing git, open gitbush. Follow these steps:
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
The first step is to set up without any prompts. The second step is to download npm from github and there will be download files and progress. The fourth step is to install npm to node.js and copy several files cmd files and mode_modules files. Clip it to the nodejs directory.
This will configure npm.
If you need to install any modules, directly enter npm install ***.
Those without npm or Windows users can use github to download socket.io and put it into the node_modules folder. For specific configuration, please refer to the article: "Nodejs Tutorial: Configuring the Windows Directory Structure of Nodejs.exe"
nodejs installation socket.io
Use the node plug-in to manage the package and run the following command to successfully install socket.io
npm install socket.io
An example implemented using socket.io
Client code:
<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 can be downloaded locally from https://github.com/LearnBoost/socket.io-client, and point to it in d56e930b0f487d043af6d6e68d1b1f9d Machine js library.
The server is implemented with nodejs
server2.js
var http= require('http'), io= require('socket.io'), express= require('express'); var app = express.createServer(), io = io.listen(app); app.listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' });//监听,一旦客户端连接上,即发送数据,第一个参数'new'为数据名,第二个参数既为数据 socket.on('my other event', function (data) {//捕获客户端发送名为'my other event'的数据 console.log(data.my); }); socket.emit('other', { hello: 'other world' });//发送另一个数据 socket.on('evnet1', function (data) {//捕获另外一个数据 console.log(data.my); }); });
Test results can be displayed normally on the client
Server-side display results:
C:javaNodejs>node server2.js
Note: The code must be in the same directory as npm_module. Otherwise, there will be an error that the socket.io module cannot be found.