1.png (10.19 KB, 下载次数: 4534)
下载附件 保存到相册
9 年前 上传
2.png (12.25 KB, 下载次数: 4266)
a.png (97.38 KB, 下载次数: 4231)
b.png (44.44 KB, 下载次数: 4246)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0; padding: 0; } .message{ width: 60%; margin: 0 10px; display: inline-block; text-align: center; height: 40px; line-height: 40px; font-size: 20px; border-radius: 5px; border: 1px solid #B3D33F; } .form{ width:100%; position: fixed; bottom: 300px; left: 0; } .connect{ height: 40px; vertical-align: top; /* padding: 0; */ width: 80px; font-size: 20px; border-radius: 5px; border: none; background: #B3D33F; color: #fff; } </style> </head> <body> <ul id="content"></ul> <form class="form"> <input type="text" placeholder="请输入发送的消息" class="message" id="message"/> <input type="button" value="发送" id="send" class="connect"/> <input type="button" value="连接" id="connect" class="connect"/> </form> <script></script> </body> </html>
var oUl=document.getElementById('content'); var oConnect=document.getElementById('connect'); var oSend=document.getElementById('send'); var oInput=document.getElementById('message'); var ws=null; oConnect.onclick=function(){ ws=new WebSocket('ws://localhost:5000'); ws.onopen=function(){ oUl.innerHTML+="<li>客户端已连接</li>"; } ws.onmessage=function(evt){ oUl.innerHTML+="<li>"+evt.data+"</li>"; } ws.onclose=function(){ oUl.innerHTML+="<li>客户端已断开连接</li>"; }; ws.onerror=function(evt){ oUl.innerHTML+="<li>"+evt.data+"</li>"; }; }; oSend.onclick=function(){ if(ws){ ws.send(oInput.value); } }
var app=require('http').createServer(handler); var ws=require('nodejs-websocket'); var fs=require('fs'); app.listen(80); function handler(req,res){ fs.readFile(__dirname+'/client.html',function(err,data){ if(err){ res.writeHead(500); return res.end('error '); } res.writeHead(200); res.end(data); }); } var server=ws.createServer(function(conn){ console.log('new conneciton'); conn.on("text",function(str){ broadcast(server,str); }); conn.on("close",function(code,reason){ console.log('connection closed'); }) }).listen(5000); function broadcast(server, msg) { server.connections.forEach(function (conn) { conn.sendText(msg); }) }
x1.png (23.57 KB, 下载次数: 4383)
x2.png (69.04 KB, 下载次数: 4418)
x3.jpg (60.52 KB, 下载次数: 4336)
x4.png (61.93 KB, 下载次数: 4335)
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
let ws = require("nodejs-websocket"); let server = ws.createServer((conn) => { console.log("new connection"); conn.on("text", (msg) => { broadcast(server, msg); }); conn.on("close", () => { console.log("connection closed"); }); }); function broadcast(server, msg) { server.connections.forEach((conn) => { conn.sendText(msg); }); } server.listen(3001)
const ws = new WebSocket("ws://127.0.0.1:3001"); ws.onopen = function () { oUl.innerHTML += "<li>客户端链接成功</li>"; oSend.onclick = function () { if (!/^\s*$/.test(oText.value)) { ws.send(oText.value); } }; }; ws.onmessage = function (msg) { oUl.innerHTML += `<li>${msg.data}</li>`; }; ws.onclose = function () { oUl.innerHTML += "<li>客户端链接断开</li>"; }
connection closed Uncaught Error: read ECONNRESET __node_internal_captureLargerStackTrace __node_internal_errnoException onStreamRead callbackTrampoline Async call from TickObject init emitInitNative emitInitScript nextTick onDestroy Socket._destroy _destroy destroy onStreamRead callbackTrampoline Async call from TCPWRAP init emitInitNative
引用:LanjunLi 发表于 2023-05-25 10:02 nodejs-websocket 包在客户端关闭时会导致服务器端发生异常而退出。
引用:gxl_ct001 发表于 2021-02-14 11:18 发现一个错别字:“并且将要跟新的数据以js”中 “根新” 似乎应改为 “更新”。
引用:哈盛世三国 发表于 2017-12-29 16:55 如何基于他的node.js库,具体怎么操作
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
在线时长累积7天(即7 * 8 = 56小时)。
持有金钱达到500。
本人属:狗
积极发起、参与各类话题的讨论等,主题、发帖内容较有价值。
在线时长累积30天(即30 * 8 = 240小时)。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.236337 second(s), 46 queries , Gzip On.