nodejs 使用nodejs-websocket模块实现点对点实时通讯

1、首先安装好nodejs-websocket

npm install nodejs-websocket --save -g

2、编写服务端

var ws = require("nodejs-websocket")
var AllUserData = new Array()
// Scream server example: "hi" -> "HI!!!"
var server = ws.createServer(function (conn) {
  console.log("New connection")
  conn.on("text", function (str) {
    console.log("Received "+str)
    AllUserData.push({
      'id':str,
      'ws':conn
    })
    conn.sendText(str.toUpperCase()+"!!!")
  })
  conn.on("close", function (code, reason) {
    console.log("Connection closed")
    // 当用户退出的时候捕捉到退出的用户
    for (var i=0 in AllUserData) {
      if (AllUserData[i].ws == conn) {
        console.log(AllUserData[i])
      }
    }
  })
}).listen(8001)

3、简易客户端

<!DOCTYPE html>`
<html>`
<head>`
<title>django-websocket</title>`
script src=``"[http://code.jquery.com/jquery-1.11.1.min.js](http://code.jquery.com/jquery-1.11.1.min.js)"``></script>`
<script type=``"text/javascript"``>``//<![CDATA[`
$(``function` `() {`
$(``'#connect_websocket'``).click(``function` `() {`
if` `(window.s) {`
window.s.close()`
}`
/*创建socket连接*/`
var` `socket =` `new` `WebSocket(``"[ws://127.0.0.1:8001](ws://127.0.0.1:8001/)"``);`
socket.onopen =` `function` `() {`
console.log(``'WebSocket open'``);``//成功连接上Websocket
};`
socket.onmessage =` `function` `(e) {
console.log(``'message: '` `+ e.data);``//打印出服务端返回过来的数据`
$(``'#messagecontainer'``).prepend(``'<p>'` `+ e.data +` `'</p>'``);`
};`
// Call onopen directly if socket is already open`
if` `(socket.readyState == WebSocket.OPEN) socket.onopen();`
window.s = socket;`
});`
$(``'#send_message'``).click(``function` `() {`
//如果未连接到websocket`
if` `(!window.s) {`
alert(``"websocket未连接."``);`
}` `else` `{`
window.s.send($(``'#message'``).val());``//通过websocket发送数据`
}`
});`
$(``'#close_websocket'``).click(``function` `() {`
if` `(window.s) {`
window.s.close();``//关闭websocket`
console.log(``'websocket已关闭'``);`
}`
});`
});`
//]]></script>`
</head>`
<body>`
<br>`
<input type=``"text"` `id=``"message"` `value=``"user1"``/>`
<button type=``"button"` `id=``"connect_websocket"``>连接 websocket</button>`
<button type=``"button"` `id=``"send_message"``>发送 message</button>`
<button type=``"button"` `id=``"close_websocket"``>关闭 websocket</button>`
<h1>Received Messages</h1>`
<div id=``"messagecontainer"``>`
</div>`
</body>`
</html>`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值