这里的Socket编程不是指使用XmlHttpRequest对象, 而是真正的创建一个Socket实现收发数据。 使用Javascript调用Java的NIO接口实现的Socket编程。
实现一个简单的EchoServer,创建文件 :EchoServer.js
var socket = __import__('Socket', null, {}) //导入Socket library.. var server = new socket.SocketServer('127.0.0.1', 8000) //创建一个Socket Server. server.on('listen', function(server) { //加入服务器开始监听的事件 print('Event listen on server:' + server.localAddress + ', port:' + server.localPort) }) server.on('clientClosed', function(client) { print('Event clientClosed on server:' + client.address + ', port:' + client.port) }) server.on('closed', function(socket) { print('Event closed on server') }) server.on('accept', function(client){ // 一个新的client连接 print('new client:' + client.address + ', port:' + client.port) client.on('read', function(s) { //clinet的有数据可读。 var input = s.read(); print('read data:' + input) s.write(input) //写数据到, }); client.on('closed', function(s) { print('bye bye client.') //s.write('input') }); }) server.listen("127.0.0.1", 8000) //监听一个端口, 并blocking, 直到服务器端被关闭。
运行:
# js EchoServer.js Event listen on server:localhost, port:8000 打开新的窗口输入 #telnet 127.0.0.1 8000 # 服务端显示 Event listen on server:localhost, port:8000 new client:localhost, port:1978 event:read read data:a event:read read data:b event:read read data:c 测试服务器连接成功.
运行上面的代码,还需要一个运行环境和Socket 库, 可以到 http://code.google.com/p/js-shell/downloads/list 下载一个night build.