socket.io와 nodejs를 사용하여 웹소켓 서버 구축
socket.io는 클라이언트측 웹소켓 서비스를 구축할 수 있을 뿐만 아니라 nodejs 서버측 웹소켓도 지원합니다.
nodejs 설치 및 구성 방법을 소개하겠습니다.
msi 파일을 다운로드하려면 http://nodejs.org/#download로 이동하세요. 다음을 계속 클릭하여 설치하세요. 최종 파일은 C:nodejs 디렉터리에 자동으로 설치됩니다.
설치가 완료되면 환경 변수가 자동으로 구성됩니다. 자동 구성이 없는 경우 경로에 ;C:nodejs를 수동으로 추가하세요.
설치가 완료되면 node.js 모듈을 관리하도록 npm을 구성해야 합니다.
창 아래에 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를 사용하여 소켓.io를 다운로드하고 node_modules 폴더에 넣을 수 있습니다. 구체적인 구성은 "Nodejs 튜토리얼: Nodejs.exe의 Windows 디렉토리 구조 구성" 기사를 참조하세요. 🎜>
nodejs 설치 소켓.io노드 플러그인을 사용하여 패키지를 관리하고 다음 명령을 실행하여 소켓.io를 성공적으로 설치하세요
npm install 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>
https://github.com/LearnBoost/socket.io-client에서 로컬로 다운로드하여 adc1155061279776b3f669ae9a3b7ec8 머신 js 라이브러리.
서버는 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); }); });
서버측 표시 결과:
C:javaNodejs>노드 서버2.js
참고: 코드는 npm_module과 동일한 디렉터리에 있어야 합니다. 그렇지 않으면 소켓.io 모듈을 찾을 수 없다는 오류가 발생합니다.