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");
    }
  });
});
相关文章
相关标签/搜索