请原谅第一天使用TS的菜鸟啰嗦了!希望对绝望中烦恼中的潭友有帮助。。。
之前js下使用了socket.io,是1.4.4版本的,由潭里的linhaiwei123《[CocosCreator + socketIO简易教程(更新至1.0)]》版本开发的。
近期想使用TS,将之前的代码重用,发现不会用TS,在群里搜索了半天,有人说要写d.ts,最后潭里@toddlxt提供了一个,正好是1.4.4版本的《socket.io.ts文件哪里有啊》,于是又折腾了半天不知道js和d.ts如何使用,烦恼啊,作为程序员!最后搜了半天,把两者放在一起了,又不知道怎么引入,主要是import {xx1} from ‘xx2’;,反正xx这两个位置傻傻分不清楚试了N次,结果发现下载的socket.io版本是2.1.0的,和d.ts的1.4.4不匹配,于是使用以下命令下了一个对应版本的:
npm install -save socket.io@1.4.4
快捷下载地址:https://cdnjs.com/libraries/socket.io
然后又发现什么还是在xx位置搞了很久——程序员就是有耐心!最后确定为:
import {connect} from './socket.io.1.4.8';
一、服务器端
#socket.io从2.X一直测试到1.4.8版本可以,1.4.8以上拖进creator立马报各种花样的错误
npm install --save socket.io@1.4.8
npm install --save express
node server.js
#server.js
var exp = require('express');
var app = exp();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(exp.static('/public'));
io.on('connection', function(socket){
console.log('a user ' + socket.id);
socket.emit('connected', 'hello cocos! 你好,世界!');
});
http.listen(8000,function(){
console.log('listening on 8000');
})
二、客户端
1、把下载的socket.io及d.ts文件拷贝的script目录
2、修改Helloworld.ts源码
# Helloworld.ts
const {ccclass, property} = cc._decorator;
import {connect} from ‘./socket.io.1.4.8’;
@ccclass
export default class Helloworld extends cc.Component {
@property(cc.Label)
label: cc.Label = null;
start () {
let self = this;
var socket = null;
if(!cc.sys.isNative) {
socket = connect('http://192.168.31.246:8000');
socket.on('connected', function(msg){
self.label.string = "web调试:" + msg;
console.log("返回信息-------------" + msg);
});
}
else {
socket = io.connect('http://192.168.31.246:8000');
socket.on('connected', function(msg){
self.label.string = "安卓调试:" + msg;
console.log("返回信息-------------" + msg);
});
}
}
}
工程包(基于creator2.0.5版):tssk.zip (1.7 MB)


