WebSocket网络接口
来源:互联网 发布:whip it 编辑:程序博客网 时间:2024/06/05 03:02
服务端:
//http://www.open-open.com/lib/view/open1402479198587.html
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/hello', function(req, res){
res.setHeader("Access-Control-Allow-Origin", "*");
res.send('hello');
});
//在线用户
var onlineUsers = [];
io.on('connection', function(socket){
console.log('a user connected');
//监听新用户加入
socket.on('login', function(obj){
//将新加入用户的唯一标识当作socket的名称,后面退出的时候会用到
socket.name = obj.name;
//检查在线列表,如果不在里面就加入
if(onlineUsers.indexOf(obj.name) == -1) {
onlineUsers.push(obj.name);
//向所有客户端广播用户加入
io.emit('login', {onlineUsers:onlineUsers});
console.log(obj.name+'加入了聊天室');
}else{
socket.send('已存在相同用户')
}
});
//监听用户退出
socket.on('disconnect', function(){
//将退出的用户从在线列表中删除
if(onlineUsers.indexOf(socket.name) != -1) {
//退出用户的信息
onlineUsers.splice(onlineUsers.indexOf(socket.name),1)
//向所有客户端广播用户退出
io.emit('logout', {onlineUsers:onlineUsers});
console.log(socket.name+'退出了聊天室');
}
});
//监听用户发布聊天内容
socket.on('message', function(obj){
//向所有客户端广播发布的消息
io.emit('message', obj);
console.log(obj.name+'说:'+obj.content);
});
});
http.listen(8081, function(){
console.log('listening on *:8081');
});
客户端:
var SocketIO = SocketIO || io
cc.Class({
extends: cc.Component,
properties: {
nameLabel:cc.EditBox,
contentLabel:cc.Label,
inputLabel:cc.EditBox,
_nameArr:[],
_ipAdd:"",
_port:0,
_socket:null
},
loginHandler:function () {
this._ipAdd = "http://192.168.1.162";
this._port = 8081;
var num
var that = this
var socket = SocketIO.connect(this._ipAdd+":"+this._port);
this._socket = socket
socket.on('connect', function(){
cc.log('connect')
socket.emit('login',{name:that.nameLabel.string});
});
socket.on('login', function(data){
that._nameArr.push(data.onlineUsers[0])
that.outputTxt(data.onlineUsers[data.onlineUsers.length-1]+" 登录成功")
cc.log('someone login', data)
});
socket.on('message', function(data){
that.outputTxt(data.name+":"+data.msg)
cc.log('get event', data)
});
socket.on('disconnect', function(){
cc.log('disconnect')
});
},
// use this for initialization
onLoad: function () {
},
outputTxt:function(txt){
this.contentLabel.string += txt+"\n"
},
sendHandler:function () {
var that = this
this._socket.emit('message', {name:that.nameLabel.string, msg:that.inputLabel.string})
}
});
- WebSocket网络接口
- Websocket(2)--接口说明
- WebSocket 接口封装方法
- 测试websocket接口
- 测试websocket接口
- 对于js中网络接口websocket,二进制数组arraybuffer,视图对象dataview学习记录。
- WebSocket -- 网络数据传输
- 网络编程websocket
- websocket网络聊天
- WebSocket 网络通信协议
- Websocket接口性能测试方法
- iOS webSocket 和 网络 基础知识
- 网络请求HttpClient,Socket,WebSocket
- 网络请求HttpClient,Socket,WebSocket
- 网络接口
- 网络接口
- 网络接口
- 网络接口
- 设计模式总结之Factory Method Pattern(工厂方法模式)
- Kinect V2 多关节捕捉应用中break 与 continue的妙用
- linux服务器上运行java程序,引用外部jar包
- 数据结构实验之查找四:二分查找
- 网上干货 ElasticSearch详解与优化设计
- WebSocket网络接口
- FILE文件流的中fopen、fread、fseek、fclose的使用
- 音视频开发——流媒体数据传输RTP(三)
- Java IO 其他流 -- 字节数组流,字符数组流和数据流
- 关于页面刷新的那些事
- 暑期dp46道(19)HDU 1078 FatMouse and Cheese dfs+记忆化搜索
- spring中c3p0配置
- Linux文件系统十问,你知道吗?
- 用户空间与内核空间,进程上下文与中断上下文[总结]