首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SocketCluster Client - TypeError: WebSocket不是构造函数

SocketCluster Client - TypeError: WebSocket不是构造函数
EN

Stack Overflow用户
提问于 2019-09-02 17:27:36
回答 1查看 4.9K关注 0票数 0

我对javascript很陌生,我正在尝试开发一个react.js应用程序,包括通过Socket集群框架进行通信。客户端不应该在浏览器中运行,而应该在后台的一个单独的javascript文件中运行。

为了实现这一点,我已经为服务器(https://github.com/SocketCluster/socketcluster)和客户机(https://github.com/SocketCluster/socketcluster-client)安装了必要的模块。

我遵循指令,服务器和客户端之间的通信(嵌入到html中的javascript代码,在浏览器中运行)工作正常。但是,当我试图在一个单独的javascript (gbab-client.js)文件中运行“节点gbam-client.js”时,它不会运行,我将非常感谢您的帮助!

gbab-client.js的内容:

代码语言:javascript
复制
const socketClusterClient = require('socketcluster-client/socketcluster');

const options = {
    port: 2222
};

// Initiate the connection to the server
const socket = socketClusterClient.connect(options);
console.log('Connecting...');

socket.on('connect', function () {
    console.log('CONNECTED');
});

// Listen to an event called 'rand' from the server
socket.on('rand', function (num) {
    console.log('RANDOM: ' + num);
});

错误信息:

代码语言:javascript
复制
$ node gbam-client.js


C:\...\node_modules\socketcluster-client\socketcluster.js:1306
    return new WebSocket(uri, null, options);
           ^

TypeError: WebSocket is not a constructor
    at createWebSocket (C:\...\node_modules\socketcluster-client\socketcluster.js:1306:12)
    at new SCTransport (C:\...\node_modules\socketcluster-client\socketcluster.js:1337:18)
    at SCClientSocket.connect.SCClientSocket.open (C:\...\node_modules\socketcluster-client\socketcluster.js:558:22)
    at new SCClientSocket (C:\...\node_modules\socketcluster-client\socketcluster.js:433:10)
    at Object.create (C:\...\node_modules\socketcluster-client\socketcluster.js:198:31)
    at Object.module.exports.create (C:\...\node_modules\socketcluster-client\socketcluster.js: 14:18)
    at Object.<anonymous> (C:\...\gbam-client.js:12:36)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)

更新:

我找到了解决办法。要求的目的地是不对的。

这是经过更正的代码(gbam-client.js):

代码语言:javascript
复制
const socketClusterClient = require('socketcluster-client');

const options = {
    hostname:'localhost',
    port: 2222
};

...
EN

回答 1

Stack Overflow用户

发布于 2019-09-02 20:12:57

可能您的ws (WebSocket库)版本与套接字群集不兼容,请尝试更新它WS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57760815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档