Node.JS Server SockJS-node

SockJS-node是SockJS客户端浏览器库的Node.js服务器端实现,使用CoffeeScript编写。本文介绍如何安装SockJS-node并提供了一个简单的回显服务器示例。

SockJS-node 详细介绍

SockJS-node is a Node.js server side counterpart of SockJS-client browser library written in CoffeeScript.

To install sockjs-node run:

npm install sockjs

(If you see rbytes dependecy failing, don't worry, it's optional, SockJS-node will work fine without it.)

An simplified echo SockJS server could look more or less like:

var http = require('http');
var sockjs = require('sockjs');

var echo = sockjs.createServer();
echo.on('connection', function(conn) {
    conn.on('data', function(message) {
        conn.write(message);
    });
    conn.on('close', function() {});
});

var server = http.createServer();
echo.installHandlers(server, {prefix:'/echo'});
server.listen(9999, '0.0.0.0');
sockjs.js:1603 GET https://10.1.2.3:8080/sockjs-node/info?t=1755746419953 net::ERR_CERT_AUTHORITY_INVALID AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 sockjs.js:1603 GET https://10.1.2.3:8080/sockjs-node/info?t=1755746427967 net::ERR_CERT_AUTHORITY_INVALID AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 sockjs.js:1603 GET https://10.1.2.3:8080/sockjs-node/info?t=1755746444050 net::ERR_CERT_AUTHORITY_INVALID AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 sockjs.js:1603 GET https://10.1.2.3:8080/sockjs-node/info?t=1755746476100 net::ERR_CERT_AUTHORITY_INVALID AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 setTimeout eval @ socket.js:38 EventTarget.dispatchEvent @ sockjs.js:170 eval @ sockjs.js:967 setTimeout SockJS._close @ sockjs.js:955 SockJS._receiveInfo @ sockjs.js:784 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:562 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 eval @ sockjs.js:371 g @ sockjs.js:66 EventEmitter.emit @ sockjs.js:86 xhr.onreadystatechange @ sockjs.js:1595 XMLHttpRequest.send AbstractXHRObject._start @ sockjs.js:1603 eval @ sockjs.js:1492 setTimeout AbstractXHRObject @ sockjs.js:1491 XHRCorsObject @ sockjs.js:2868 InfoAjax @ sockjs.js:353 InfoReceiver._getReceiver @ sockjs.js:534 InfoReceiver.doXhr @ sockjs.js:551 eval @ sockjs.js:520 setTimeout InfoReceiver @ sockjs.js:519 SockJS @ sockjs.js:728 SockJSClient @ SockJSClient.js:43 initSocket @ socket.js:20 eval @ socket.js:39 报错 而且开始就直接渲染了所有选中的, 要求是先渲染已选的,搜索后再展示所有和已选的
最新发布
08-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值