I found the solution. The socket clientSocketId
is paused by default when it is created. In the onAccept
function, simply adding chrome.sockets.tcp.setPaused(info.clientSocketId, false);
after adding onReceive
listener solves problem.
function onAccept(info) {
if (info.socketId != serverSocketId)
return;
chrome.sockets.tcp.onReceive.addListener(onReceive);
chrome.sockets.tcp.onReceiveError.addListener(function(info) {
console.log("Error: ", info);
});
chrome.sockets.tcp.setPaused(info.clientSocketId, false);
buf = str2ab("Connected.\n");
chrome.sockets.tcp.send(info.clientSocketId, buf, function(info) {
if (info.resultCode != 0)
console.log("Send failed.");
});
}