socket.io的編程實現

socket.io實例

1、環境要求

客戶端須要引用socket.io.js文件
服務端須要按照node環境,以及npm install socket.io用來安裝服務端的socket.io

2、客戶端發送,服務端接收

客戶端代碼

引用,生產環境下請使用這個CDN

一個大神掛的cdn。javascript

<script src="http://realtime.plhwin.com/socket.io/socket.io.js"></script>

引用,線上環境請使用同源引用

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

發送函數

function send(){
    var socket = io('ws://localhost:8888');
    socket.emit('listmessage',{ sid :'13947965133'});
}

服務端代碼

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

app.listen(8888);

function handler (req, res) {
  fs.readFile(__dirname + '/index.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
}
//核心代碼
io.on('connection', function (socket) {
  socket.on('listmessage', function (data) {
    console.log(data);
  });
});
//核心代碼

3、A客戶端發送B客戶端接受(也能夠用做A端的廣播發送,只需監聽同一字段便可)

A客戶端代碼

代碼詳見 https://github.com/13947965133/imnugd/tree/master/websocket/socketio_testhtml

function SendToClientB(){
    var socket = io('ws://localhost:8888');
    socket.emit('listmessage',{ sid :'13947965133',message:"I am is message!"});
}

B客戶端代碼

function ReadFromClientA(){
    var socket = io('ws://localhost:8888');
    socket.on('sid_13947965133', function (data) {
    console.log(data);
    });
}

服務端代碼

io.on('connection', function (socket) {
  socket.emit('news', { hello2: 'worldwww',guohan:'values' });
  socket.on('listmessage', function (data) {
    if (data.sid = '13947965133') {
      io.emit('sid_13947965133',data);
      console.log(data);
    }else{
      console.log("no find match user");
    }
  });
});
相關文章
相關標籤/搜索