在Chrome应用程序不能取消TCP服务器的TCP连接
In a Chrome app cannot unpause TCP connection for TCP server
我正试图在Chrome应用程序中设置TCP服务器。我非常接近完成。我可以从我的TCP服务器向我的客户端发送数据。但是我无法处理客户端发来的数据。我发现套接字暂停了。问题是,我似乎无法取消暂停。
如果我在JavaScript控制台中尝试:
chrome.sockets.tcp.getSockets(function(d) {console.log(d);});
我得到这样的结果:
[Object]
0: Object
connected: true
localAddress: "127.0.0.1"
localPort: 60519
paused: true
peerAddress: "127.0.0.1"
peerPort: 36529
persistent: false
socketId: 11
length: 1
然后我取消暂停,对吧?这样的:
chrome.sockets.tcpServer.setPaused(
socketID, false, function () {
console.log('unpaused');
}
);
实际上我的回调是运行的:
unpaused
但是如果我再次检查
chrome.sockets.tcp.getSockets(function(d) {console.log(d);});
I still get:
[Object]
0: Object
connected: true
localAddress: "127.0.0.1"
localPort: 60519
paused: true
peerAddress: "127.0.0.1"
peerPort: 36529
persistent: false
socketId: 11
length: 1
对于setpause调用中的socketID值,我使用了Chrome为socketID和clientSocketID提供的值。
编辑:我也试过getInfo():
chrome.sockets.tcpServer.getInfo(19, function (d) {console.log(d);});
让我大吃一惊的是:
Object {
localAddress: "127.0.0.1",
localPort: 60519,
paused: false,
persistent: false,
socketId: 19
}
getSockets()仍然表示套接字已暂停。套接字仍未接收消息。我很困惑。
为了完整起见,下面是我处理消息的方法:
Package.MyClass.prototype.onAccept = function(info) {
console.log('accept info', info);
if (info.socketId !== this.serverSocketId) { return;}
console.log('Socket ID is correct.'); // This gets printed every time.
// Start receiving data.
chrome.sockets.tcp.onReceive.addListener(this.onReceive.bind(this));
chrome.sockets.tcpServer.setPaused(this.serverSocketId, false);
}
我可以告诉onAccept()被调用时,客户端连接到套接字:控制台日志显示。但是onReceive也从调用console.log开始,并且永远不会显示。
编辑:解决:
我找到了一个解决方法:我使用这个脚本:https://github.com/GoogleChrome/chrome-app-samples/blob/master/tcpserver/tcp-server.js
它做我需要的一切,它更容易使用和配置
正如我在最后的编辑中提到的,我找到了一个解决方法:我使用这个脚本:https://github.com/GoogleChrome/chrome-app-samples/blob/master/tcpserver/tcp-server.js
它做了我需要的一切,它更容易使用和配置。
似乎内置的TCP服务器不像当前版本的Chrome, Chrome 34.
- 使用JSP从服务器检索和显示图像
- 如何使用 Sails.js 创建 TCP 服务器
- TCP 服务器,用于用 Javascript 编写的插件
- 无法在TCP服务器和节点.js之间发送消息
- SyntaxError:意外的输入结束(nodejs-tcp服务器)
- Node.js TCP服务器,用于评估和打印数据
- 当用户发送get请求时,我怎么能等到数据在Node.js中从TCP服务器接收到
- 如何通过节点网络套接字连接ruby TCP服务器
- C#Tcp服务器-HTML5网络套接字通信
- Node.js JavaScript如何在异步事件处理程序中访问oject数据;socket.on”;在TCP服务器中
- 将基于java线程的tcp套接字服务器转换为javascript异步tcp套接字服务器
- 有没有办法用JavaScript编写TCP服务器套接字?
- node.js服务器泄漏TCP连接
- 无法连接到CloudFoundry上的TCP服务器(localhost node.js工作正常)
- TCP html5 websocket客户端连接到c# socket服务器
- 在Chrome应用程序不能取消TCP服务器的TCP连接
- 为什么不是'我的helloworld node.js tcp服务器没有连接
- 尝试将文件从 C# 客户端发送到节点.js TCP 服务器
- 最优的方式流股票价格从c++服务器使用tcp到websockets
- Chrome应用程序启动tcp服务器