所以我有这个简单的python代码打开一个ws连接:
async def handshake():
async with websockets.connect('ws://localhost/3000') as websocket:
#Send email
await websocket.send(email)
#Recieve server random r
r = unhexlify(await websocket.recv())
#Generate client A
a = int(hexlify(urandom(32)),16)
A = pow(g,a,N)
# Send A
await websocket.send('{:0x}'.format(A))
# Recieve B
B = int(await websocket.recv(),16)
# Generate S
u = int(sha256(int2bytes(A) + int2bytes(B)).hexdigest(),16)
x = int(sha256(r + sha256(email + b':' + pw).digest()).hexdigest(),16)
S = pow((B - pow(g,x,N))%N, a + u * x, N)
# Send token H(A||B||S)
token = sha256(int2bytes(A) + int2bytes(B) + int2bytes(S)).hexdigest()
await websocket.send(token)
#Recieve confirmation
result = await websocket.recv()
asyncio.get_event_loop().run_until_complete(handshake())
代码工作正常,但我想制作一个可以处理它的NodeJS服务器,我找不到这个问题的任何答案。我看过NodeJS websocket,但我找不到处理有序的前后消息的方法。关于在NodeJS上使用什么来制作这个服务器的任何建议?
非常感谢你。