[NodeJS]基于WebSocket的NodeJS在线C/C++ WebIDE和在线编译

很早以前,就想自己做一个在线的IDE,前段时间,做了一个NodeJS的简易版

目前已经完成了登录、注册、代码编辑器(高亮、自动联想)、云端编译等功能

前端我主要是使用Bootstrap、codemirror

后端主要是NodeJS

编译器是g++

全站采用全静态,所以请求都是AJAX进行模拟

下面是server.js的源码

其他的可以移步coding查看项目

https://git.coding.net/leeli73/CorCPP_Online_IDE.git

因为很多文件的命名中,我使用了-,而coding中特殊字符不能作为文件名,所以项目中的www.zip 就是网站的前端代码

server.js是服务器脚本

还有很多问题,希望大奖能帮我一起找bug和完善功能

var WebSocketServer = require(‘ws‘).Server,
    wss = new WebSocketServer({ port: 88 });

wss.on(‘connection‘, function (ws) {
    console.log(‘client connected‘);
    ws.on(‘message‘, function (message) {
        console.log(message);
        ResponseJSON(message);
    });
});

function ResponseJSON(str)
{
    var Data = JSON.parse(str);
    if (Data.Type == "Code") {
        Response_Code(Data.Data);
    }
    else if (Data, Type == "Get")
    {

    }
}

function Response_Code(code)
{
    var fs = require("fs");
    fs.writeFile(‘gcc\code\code.txt‘, code, function (err)
    {
        if (err)
        {
            return console.error(err);
        }
    })
    fs.readFile(‘gcc\code\code.txt‘, function (err, data)
    {
        if (err)
        {
            return console.error(err);
        }
        console.log("DATA IS:" + data.toString());
    })
    var cmd = require("node-cmd");
    /*cmd.get(‘C:\\Users\\leeli\\Documents\\Visual Studio 2017\\Projects\\server\\server\\gcc\\check.exe C:\\Users\\leeli\\Documents\\Visual Studio 2017\\Projects\\server\\server\\gcc\\code\\code.txt‘, function (data)
    {
        console.log(data);
    });*/
    cmd.run(‘E:\server\server\gcc\check.exe E:\server\server\gcc\code\code.txt‘);

}

原文地址:https://www.cnblogs.com/lee-li/p/8654658.html

时间: 2024-08-16 01:46:11

[NodeJS]基于WebSocket的NodeJS在线C/C++ WebIDE和在线编译的相关文章

借助Nodejs探究WebSocket

文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩展阅读 一.概述-what's WebSocket? 1.1 为什么我们需要WebSocket这样的实时的通信协议? WebSocket是web通信方式的一种,像我们熟知的HTTP协议也是web通信方式的一种.但是我们知道HTTP协议是一种无状态的协议,其服务端本身不具备识别客户端的能力,必须借助外

HTML5+NodeJs实现WebSocket即时通讯

产品网站中很多地方需要用到实时交互,web端的实时交互. 具体为活动抽奖案例: 现场一个大屏,显示中奖人列表相关信息: 主持人一个pad控制开始抽奖结束抽奖: 每个活动现场的观众的手机.用来摇动手机进行抽奖 毫无疑问用websocket,WebSocket相较于HTTP来说,有很多的优点,主要表现在WebSocket只建立一个TCP连接,可以主动推送数据到客户端,而且还有更轻量级的协议头,减少数据传送量.所以WebSocket暂时来说是实时通讯的最佳协议了 至于服务器语言选择nodeJs,是因为

TWaver html5 + NodeJS + express + websocket.io + redis 快速搭建项目(一)

最近看到TWaver 的html5版本即将发布了,于是今天用TWaver HTML5 + NodeJS + express + websocket.io + redis搭建了一个简单原型.先发出几张效果图给大家尝尝鲜.界面添加.修改以及删除网元后,会自动增量存库,并广播更新. 看看这个广播实现的效果,可以在手机上接受任何操作: 最后再来个告警广播的效果图 在后续的文章中会给大家详细的讲解具体技术的实现.

Node.js + Nginx搭建基于websocket的、可扩展的消息中心

前言:最近需要搭个可扩展的聊天室环境,倒腾了半天,整理出了这么个方案.这个方案满足下列需求: ⑴ 基于websocket通讯. ⑵ node.js server作为deamon进程在后台一直运行. ⑶ socket server可通过增加服务器的形式横向扩展. 小编本人搞技术的,做事力求直击要害,言简意赅,所以把主要的步骤说明了下.需要详细了解的请看文章底部的"参考". 1. 安装nodejs ⑴ 准备工作 yum -y install gcc make gcc-c++ openssl

高效简易开发基于websocket 的通讯应用

websocket的主要是为了解决在web上应用长连接进行灵活的通讯应用而产生,但websocket本身只是一个基础协议,对于消息上还不算灵活,毕竟websocket只提供文本和二进制流这种基础数据格式.在实际应用则更偏向于对象消息的处理,而在这基础上更希望集成一系列的消息路由机制来解决消息处理上的问题.为了解决以上问题beetle针对websocket进行了一些高层次的封装,让服务端处理消息变得更简单灵活.以下通过不同的示例介绍Beetle websocket开发包的简易性. hello wo

【NodeJs】我的NodeJs技术总结——第一篇

既然是我的技术总结,那就是以我的技术水平为基础的,写浅了大家不要笑话,如果有错误的地方还望指正. 这第一篇就谈谈NodeJs的一些编程细节吧. 1.遍历数组 for (var i=0, l=arr.length; i<l; i++) 这样写的一个好处就是让每次循环少一步获取数组对象长度的操作,数组长度越长,价值越明显. 2.判断变量的真假 if (a) {...} //a='', a='0', a=[], a={} if条件判断的结果分别是:false, true, true, true.这个结

分享基于 websocket 网页端聊天室

博客地址:https://ainyi.com/#/67 有一个月没有写博客了,也是因为年前需求多.回家过春节的原因,现在返回北京的第二天,想想,应该也要分享技术专题的博客了!! 主题 基于 websocket 网页端聊天室 WebSocket 协议是基于 TCP 的一种新的网络协议.它实现了浏览器与服务器全双工 (full-duplex) 通信--允许服务器主动发送信息给客户端. 使用 java 开发后台 需要导入一个jar包:javax.websocket-api-1.0-rc4.jar 后台

Websocket全讲解。跨平台的通讯协议 !!基于websocket的高并发即时通讯服务器开发。

本博文,保证不用装B的话语和太多专业的语言,保证简单易懂,只要懂JAVAEE开发的人都可以看懂. 本博文发表目的是,目前网上针对Websocket的资料太散乱,导致初学者的知识体系零零散散,学习困难加大.本博加以整理,并且实践. 所用核心技术选型: Tomcat + Spring 4.0.3 + Mongodb(高并发数据库) + SpringQueue(消息队列)+ ActiveMQ (消息队列) + Spring-data-Mongo + Servlet 3.0 +Spring-Websoc

Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具

工具来源: Nodejs需要手动加载路由文件,如果一个个添加,项目逐渐扩大,比较麻烦. 尤其在项目route目录下,增加模块文件夹的时候,引入路由更是麻烦. 因此写了一个Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具,取名为route.js. 支持无限级别目录结构,自动递归引用.有任何更好的建议,欢迎随时留意交流. 使用方法: 1.文件:app.js同级目录增加route.js文件,复制下面贴出源代码: 2.引入:app.js中引入:var route = require(